Aunque no se ajuste a tu problema, la solución planteada por Ecfisa me pareció muy buena... y sencilla.
Hice una prueba y creo que este ejemplo resuelve lo que preguntas:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
aa : string ;
cc : integer ;
begin
Memo1.Lines.Clear ;
aa := 'Casi nadie le creyó a Casandra, cuando advirtió los peligros que encerraba '+
'ese caballo gigante de madera en las puertas de Troya para el futuro de su '+
'civilización. El final de aquella historia -La Ilíada- es conocido. Muchos menos '+
'hicieron caso a las alertas desesperadas del profesor y catedrático catalán '+
'Santiago Niño-Becerra, cuando escribía hace 5 años en Internet o en algún '+
'periódico, que la suerte de este sistema tal y como estaba pautada, también '+
'estaba escrita. "Alarmista" y "futurólogo" fueron algunos de los motes que se '+
'granjeó en la comunidad académica cuando decidió darle forma de libro a sus '+
'intervenciones, con el sugerente y poco feliz título de "El crash de 2010".' ;
while length ( aa ) > 20
do
for cc := 20 downto 0
do
if aa [cc] = ' '
then
begin
Memo1.Lines.Add( copy ( aa, 1, cc ) ) ;
aa := copy ( aa, cc +1, length (aa) ) ;
break ;
end;
end;
Espero que te sirva.
Saludos.