Se puede hacer, pero tiene un inconveniente.
La única forma de ajustar el tamaño de la columna al texto que se contiene
es recorrer todos los registros para obtener el texto más largo.
A partir del texto y utilizando la fuente del grid, en la clase TCanvas hay un método que te da el ancho.
Ese es el ancho que deberías dar a la columna, para que todos los textos se mostraran completos (siendo el mínimo).
El problema es la parte subrayada. Estás haciendo un trabajo innecesario por el volumen de datos y que el algunos casos puede ser muy costoso. y "gastando" también tiempo en el recorrido.
En algún caso particular en que tuvieras muy pocos registros, se podría justificar, pero creo que no es una buena práctica.
Creo que
esto es lo que pides, pero fíjate que tal y como te he comentado, en el interior del procedimiento realiza un recorrido del
TODO el dataset asociado.