Porque usted está creando el DataGridView dinámicamente las columnas no estarán disponibles para usted hasta que la rejilla haya terminado el atascamiento. Así pues, qué usted necesita hacer es agregar a un tratante para el acontecimiento de DataBindingComplete y fijar los tamaños de la columna allí: