Gab es nicht mal eine TBatchMove-Komponente mit Callback? Damit sollte es doch eigentlich gehen. Du nutzt ja TUniQuery. Da sollte TCRBatchMove dabei sein. Dort gibt es ein
OnBatchMoveProgress
Ansonsten würde ich den Prozess sowieso nicht auf einem Client ausführen, wenn so große Datenmengen verarbeitet werden sollen. Eventuell bietet sich auch noch eine Stored Procedure an. Das wäre von der Performance auf jeden Fall die bessere Variante.