Я не знаю, почему это работает, но установка элемента управления DataGridView с двойной буферизацией работает абсолютно. Убедитесь, что свойство DoubleBuffered на форме хоста также имеет значение false.
После этого мой элемент управления сеткой перестал перерисовываться настолько медленно (независимо от объема данных), что вы могли почти пересчитать ячейки по мере их поступления, - перерисовать так же быстро, как и любой другой элемент управления.
Свойство DoubleBuffered защищено в DataGridView, поэтому вам нужно будет создать производный класс и установить там свойство, например:
class DoubleBufferDataGrid : DataGridView
{
public DoubleBufferDataGrid()
: base()
{
this.DoubleBuffered = true;
}
}