Massive and/or inefficient code in the celltextpaint or cellbackgroundpaint events,
coupled with maybe a line of code that forces a refresh or repaint in those, so that each cell is painted over and over again.
Run profile and see what events are called thousands of times, and which ones take up the most time.
Try just commenting out the celltextpaint and cellbackgroundpaint event code as a starting point.
In fact, it was not the commented code that was were the error lies.
I add garbage at the beginning of the Event, run : standard speed. I doubled the commented number of lines run: same standerd speed.
So I copy/pasted the defective code, removed the commented lines that does nothing: same slow.
So I compared line after line and diesovere a MessageBox, removed it and that was it.
I used System.DebugLog in that code (I think), but why a messagebox ?