I'm not sure if iMovie could do it, but I know it can be done in Final Cut (express or pro) as long as the max number of simultaneous video clips are within the amount of video tracks that can be in a single sequence (in the case of FCE, 99 video and 99 audio tracks, which if each video track has 1 audio track then 99 clips could conceivably be on the timeline simultaneously - if each has 2 audio tracks, then 49.) the more simultaneous video you have, the more work it will be to synchronize them all, and to use motion controls to position them and shift them like the youtube video did, and more time spent rendering because there would probably be too much video to play back all simultaneously in real time. There probably are some tricks you could use to subdivide the work, I'm just looking at a quick brute force solution to the question tho...
It is a neat video how he did it. I'm not sure if he's actually playing, or just pretending to play to the music, but either way he did a really good job.