Sim, para leitura é possível, a forma mais fácil seria utilizar componentes que trabalham da mesma forma que o TDContainer e TDContainerDB.
TBMultiDataPacket seria o TDContainer.
TBDBMultiDataPacket seria o TDContainerDB.
Código:
uses uBMultiDataPacket, uBDBMultiDataPacket;
var
dt: TBMultiDataPacket;
dtdb: TBDBMultiDataPacket;
begin
dt := TBMultiDataPacket.Create(nil);
dt.loadfromfile('c:\arquivo.dp');
dtdb := TBDBMultiDataPacket.Create(nil);
dtdb.DataPacket := dt;
dtdb.active := True;
while not dtdb.eof do
begin
...
// dtdb é um tdataset, então é só ler
end;
dtdb.free;
dt.free;
end;