i am building such a game at the moment. the way that i am doing it (with very little cpu) is to make the items solid, but ONLY when they are within 200px of the player character.
this means that i save a HUGE amount on cpu usage, and i run at 120 frames with 150 enemies, bullets, and various other objects on-screen.
another thing i did (i am proud of this) is only make items solid when they are close to a bullet. you would think that this is CPU-heavy, but it is the opposite and makes the game run really smooth.
my game is not perfect by any means, but it's the best way that i have found to have so many enemies on screen while keeping FPS at 120, and CPU low.