Se me ocurre, también, que puedes borrar la propiedad DataSource del DBGrid antes de empezar a recorrer los registros y volver a asignarla una vez finalizado tu proceso.
Código Delphi
[-] DBGrid1.DataSource := nil;
...
...
...
DBGrid1.DataSource := Datasource;
De esta manera, no se muestra el cursor trabajando y parece como que la tabla no hace nada.
Una vez vuelto a asignar, trabajas la grilla normalmente.
Espero te sirva esto.
Saludos.