There are some threads elsewhere on synchronising cameras, but the main issue would I think be how to connect 100 devices via USB. You might look at virtual USB over Ethernet. If you were wanting to transfer the images back though, I think the I/O rate might be too much, I suspect about 10 to 20 might work if you could figure out the connectivity angle.
FWIW, you can control multiple cameras from a single instance of chdkptp using the built in Lua API. I don't know what the limits are. The cameras can be operated in parallel (in the sense that you can tell one to start shooting and then command another without waiting for the shot to finish), but actual PTP commands and data transfers can only involve one camera at a time.
You can also use multiple instances of chdkptp, but in this case, some care needs to be taken to avoid breaking the connections to other cameras. Some notes here
http://chdk.setepontos.com/index.php?topic=6231.msg96441#msg96441If you are controlling chdkptp from an external problem, launching an instance once and piping to it's standard input will be more efficient than launching a new instance each time you want to issue a command. Note that most of chdkptp is written in Lua, so you can add custom commands or application specific logic without too much difficulty. It's not terribly well documented at this point, but I'm happy to answer questions.
chdkptp does build and run fine on raspberry pi, and should be relatively easy to build on similar SBCs.
edit:
There is also dotnet client library:
http://chdk.setepontos.com/index.php?topic=9148.0I don't know what the current status is.