I checked with my colleague, and it sounds like unfortunately painting multiple small regions is broken in recent versions of macOS. There’s some more information in this thread, but the gist is that the OS no longer keeps an accurate record of the screen regions which need repainting.
Perhaps you could try enabling the OpenGL renderer and test whether that provides acceptable performance.
