I still think this is not the main bottleneck. There must be something else that is slowing things down. I'm wondering how the whole repaint process works -- if the PaintBox is subsequently painted onto the Form's canvas perhaps.
Yes, each control has it's own bitmap surface, so they need to be painted into the form canvas to form the full image. In the past there was only 1 surface, but I changed to the current design because it allows us to buffer all controls, so the painting is much faster now for common cases like a fullscreen form where only 1 control was invalidate. Before everything had to be redrawn from zero, now we redraw only the invalidated control and merge all buffers.
You can test your theory by drawing in the Form OnPaint event instead of in a PaintBox. The form currently uses the general buffer, so in reality it is never buffered, but on the other hand whatever you draw there goes to the final image directly, without the need of an extra copy.