?
Assuming you don't any server misconfiguration or SQL Server latency issues, then the biggest performance bottleneck tends to be the network.
Each client/user will make dozens or hundreds of simultaneous requests, often using machines more powerful than the server, and these requests can be expensive... particularly if you're using connectors... because they have to be forwarded to another server. These requests "pile up" and eventually, the underlying infrastructure can't handle it (IIS, network card, etc), and you start getting timeouts like that.
This is where load-balancing comes in, and is pretty important in your configuration as you add users and packages.