Hola.
A mi tampoco me queda claro el caso, pero el almacenamiento auxiliar no es necesario en absoluto.
Podes usar la propiedad vectorial
Strings para realizar la concatenación de forma directa y un contador para acceder al índice, vg.:
Código Delphi
[-]
for i := desde to hasta do
StringList1.Strings[inx_orig] := StringList1[inx_orig] + StringList2[i];
(*) Strings es propiedad por defecto por lo que podes omitir su nombre
Saludos