The best I could do would probably be one where you could select from these choices:
1. Draw sprites behind painting (current method)
2. Draw sprites in front of painting
3. Draw sprites somewhere in the middle of painting, using a special command RENDERSPRITES.
2 and 3 can both be achieved with RENDERSPRITES, just call it at the top of the Paint event for 2 and somewhere in the middle for 3. For the old behavior, don't call it at all (or you can call it at the end if you want, but it's not necessary).
Basically with #2 you could paint some stuff, then draw all your sprites then paint some more stuff.
What you could NOT do is paint, draw some sprites, paint some more, then draw other sprites. If that's what you need then that would require even more code. You would have to do something like RENDERSPRITES 2, 3, 4 or pass an number array to RENDERSPRITES. It all gets kind of tricky after that.