Bueno...parece q la solucion al final si es sencilla, aunque no tenga mucha logica...es poniendo simplemente dbgrid.Options - [dgRowSelect] antes de repintar...no hace falta ni canviar .leftcol. Parece ser que si dgRowSelect esta activado al llegar al .paint, se crea el bitmap de toda la dbgrid y luego este se mueve a la columna especificada, con el correspondiente parpadeo
en fin, gracias