También se me ocurre que utilices TStrings en vez de Memos.
La propiedad Lines de un Memo es un TString. Al no tere el componente a cuestas (la parte visual, eventos, metodos, etc.) debería ser más liviano.
La idéa es más o menos esta:
Código Delphi
[-]var
s : TStrings;
begin
s := TStringList.Create;
try
while ...
begin
s.Add(DatosDelRecibo);
end;
Imprimir(s);
finally
s.Free;
end;
end;