CrossRoads - Thank you for the info on shift registers and building out using PCB's in series. I will follow this up. Yes, essentially I need a way to fire off any one of 300 flashes in quick succession (based on an input signal). The signal could be coming in as quick as every 363 microseconds.
RuggedCircuits - sending the command 300 times in 20 ms would definitely be fast enough. Having a micro controller with lots and lots of pins would be better though. I assume this means having a custom micro controller built? My background is in software development and I'm still getting up to speed on the electronics side of things. Having a custom board that can still be programed using arduino would be great.
NiHaoMike - thank you for the lead on SPI. I'll look into this further.
Udo Klein - I've tested sending firing flashes sending a high voltage then returning to low (without using any delay in between). This seems to take around 10 to 12 microseconds for one flash. Ultimately I'd like to fire 2750 flashes a second. This means having a lot of flashes or (as you point out) recharging the flashes very quickly and firing them more than once a second. Cost will definitely be a factor but if it seems it may be cheaper to hire flashes than can recycle quickly. In terms of speed this means firing a flash every 363 microseconds but it would be good to be able to go faster than this if we need to (say every 100 microseconds) but I can't see a need to go faster than 25 microseconds.
Thank you for the speedy replies.