А простое копирование строк из поля в поле не пойдет?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I, J, K, L: Byte;
TmpStr: String;
begin
I := Memo1.Lines.Count;
J := 0;
L := 2;
while J < I do
begin
TmpStr := '';
for K := J to L do
TmpStr :=TmpStr +' '+ Memo1.Lines[K];
Memo2.Lines.Add(TmpStr);
J := J + 2;
L := L + 2;
end;
end;
Правда тут лишняя срока выскакивает, но ее не сложно убрать
P.S.: а в Memo1 всегда четное количество строк?