вызывать наверное нужно не на каждую ячейку, а на область которую надо отрисовать.
но наверное лучше профайлером пройтись сначала
Тоже об этом думал.
Если записать все ячейки в которых были изменения, и потом передать кординаты самой верхней левой, и самой нижней правой, то в результате, если живых больше чем мертвых, то будет практически то же самое что и обновлять всю талицу.