A ver, a ver, a ver ......
A golpe de vista ese código pareciera que estar recorriendo una matriz que contiene un RecordSet y por cada fila (

) haces otra consulta y esta a su vez quieres colocarla a manera de maestro-detalle ... ¿es correcto?
Si es así, independientemente del diseño que posiblemente sea el que esta mal ya que a lo mejor ocupas un filtro de manera inicial para que el contenido del Array
"toda" no sea tan grande, se me ocurre que hagas solo una lectura y solo un barrido.
No se cual sea la consulta que alimenta a
"toda" pero seguro puedes agruparlo con
clientes para tener un maestro-detalle en un solo recordSet, y en una sola barrida y llevando una variable con el valor del
toda(subcliente,I) anterior puedes
detectar cuando cambie para pintar de nuevo los encabezados, así no harás tantas llamadas al server y no sería tan tardado.
Si no es así y no entendí en realidad

favor de hacer caso omiso