Por cierto, para llenar el memo lo haces cuando la pasada lo piad, al final de cada grupo de 16.
Código Delphi
[-]
for j:=0 to 4095 do
begin
Fila:=j mod 16
columna:= j div 16
if Fila=0 then Str:= IntToHex(j,4); StringGrid1.Cells[columna,fila] := IntToHex(Buffer[j],2);
if Fila=15 then Memo1.Lines.Add(Str); end: