>>Is there anyway to add grouped columns later than at the end of form_load?
At the end of form.load, you can create a Timer with a small interval and a Tick event. In the event handler, stop the timer, unsubscribe to the event and do the grouping there.
//At the bottom of form.load
Timer t = new Timer();
t.Interval = 20;
t.Tick += new EventHandler(t_Tick);
t.Start();
//the handler
private void t_Tick(object sender, EventArgs e)
{
Timer t = sender as Timer;
t.Stop();
t.Tick -= new EventHandler(t_Tick);
t.Dispose();
//do your grouping and sizing;
}