I did that, alas, it remains runs the entire array on one pin at a time, which at extreme speeds looks pretty similar to a regular scan
Can we just assume I don't understand that sentence.
Because I don't.
Please post the code that you tried, describe how it behaves, and how that differs from what you ezpected.