shareConnections means that you have one single global HTTP connection pool, not one per virtual user.
The former is more realistic if you have just a few real world users but still designed your Simulation with tons of virtual users. Think of server side programs calling APIs, such as booking, price comparators, etc.
The latter is more realistic if you have tons of real world users that each handle connections, typically browsers.
Those request timeouts typically mean application resource starvation, such as database connections.