What microcontroller should I use?
I recommend a Teensy++ 2.0 (or any other AT90USB1286 development board)

128KB Flash, 8KB RAM, 46 I/O pins, 8 analogue inputs

$24

The Teensy boards are USB powered and can provide a virtual COM port (USB Communications Device Class). You could make use of this serial link for your pin control protocol.
This works without any custom drivers on Windows, OSX and Linux.

To create the pin control firmware, there's TeensyDuino or plain old C.

When bit banging, the bottleneck is going to be the microcontroller's USB interface. So you may want to shift protocols such as I2C and SPI down to the microcontroller. For this you could use my Bus Ninja.

Adding additional Teensies to your setup is simple, you just need one USB port per device, presenting one virtual COM port per device.

(Note. This approach will work equally well with a whole range of ARM processors and others, I just don't know of any cheap development boards with available software).

Another way could be to use an Arduino and a Caterpillar Shield to expand the I/O. On a custom board I built around the same I/O expander I was able to update 256 outputs at over 1KHz.