Arduino 300 Outputs

birdhouse:
I'm thinking to use optocouplers because of their high speed.

I'm not sure what you mean by "high speed", but I would argue that optocouplers are generally slower than any a properly driven transistor (such as a mosfet). If you are comparing optocoupler's to relays then they are faster than a mechanical relay, but generally can't switch the same amount of current.