Is there any way to do per pixel collision on objects that are moving with a high velocity other than stepping through every pixel of movement and checking for collision?
Not really, but you can optimize the collision checking that happens before it.
Divide your objects into few hitboxes - one main hitbox covering the whole object, 4 smaller (1/4 size of the original one), maybe repeat few times more (depending on the size of objects).
That way you'll discard more ``false positives'' from the main hitbox before the whole per-pixel (costly as love) check.
If your objects are very ``sparse'' (low density), you can recurse this 4-division thing (wiki: Quadtrees) until you get single pixels.
Things I assume (won't work well without those):
-your objects don't usually contain other objects - they collide mostly on the outside
-you don't need to know which pixels collide (you can make a full, brute check after you're sure some do, though)
-your objects aren't too ``geometric'' (elliptic, polygonal) - in this case you'd better use less generic algorithm for each case