Come dire:
data una stringa $str
prendi la sottostringa dei primi 1000 caratteri,
trova l'ultimo spazio e salvalo in $pos
prendi la sottostringa di $str fino alla posizione $pos-1
togli dalla stringa $str la sottostringa fino alla posizione $pos.
Riprendi ricorsivamente.

Non so se questo ti puo` bastare come spunto.

Forse si puo` fare tutto con una RE, ma in questo momento avrei difficolta` ad elaborarne una specifica.


In alternativa:
spezza la stringa in tante sottostringhe mediante split secondo lo spazio
ricomponi la stringa fino a che i caratteri non superano i 1000