Hola,
No se si habrás solucionado ya tu problema.
Existe una método muy simple mediante el cual puedes ir consultando "bloques de registros" en la base de datos e ir
añadiendolos
a un mismo tClientDataset final.
No se como respondería este proceso al ejecutarlo en un segundo hilo (no suelo trabajar con hilos) ya que tanto este procedimiento como el usuario podrían estar manipulando el mismo tClientdataset al mismo tiempo (aunque esto si podrías solventarlo clonando el tClientDataset
)
Un Saludo.