I have the same issue but in my case it causes an uncatchable exception 0xc00000fd in gdi32full.dll as event viewer reviels.
This happens on some systems only. There are systems that work fine for 30k+ rows, others crash at 10k.
The only workaround I found is to set the initial FirstDisplayedScrollingRowIndex delayed via a Windows.Forms.Timer within Form1_Load:
var scrollTimer = new System.Windows.Forms.Timer();
scrollTimer.Interval = 500;
scrollTimer.Enabled = true;
scrollTimer.Tick += (object sender, EventArgs e) =>
{
scrollTimer.Stop();
dg.FirstDisplayedScrollingRowIndex = dg.RowCount - 1;
scrollTimer.Dispose();
};
This is c# but it shows the intention.