Esto no está relacionado con ASP.NET per se (no tengo muy poco conocimiento en ese área), pero generalmente servidores web. La mayoría de los servidores web usan subprocesos (o procesos) para manejar las solicitudes, por lo tanto, básicamente, cualquier fragmento de código que tenga se ejecutará para ambas conexiones en paralelo. Por supuesto, si accede a una base de datos u otro sistema de back-end donde se coloca un candado, permitiendo que solo una sesión realice consultas, es posible que haya serializado implícitamente todas las solicitudes.
Los servidores web suelen tener un número mínimo y máximo de trabajadores, que están sintonizados con el hardware actual (CPU, memoria, etc.). Si se agotan, las nuevas solicitudes se pondrán en cola esperando que un trabajador esté disponible, o hasta que se haya alcanzado la longitud máxima de espera de las solicitudes pendientes, ignorando las conexiones nuevas, negando de hecho el servicio (si esto es a propósito, se llama una denegación de servicio o un ataque DoS).
Por lo tanto, en sus términos es una combinación, es una gran cantidad de solicitudes simultáneas que llenan la cola.
¿Hay un número máximo de solicitudes que pueden manejarse? ¿Ese máximo incluye múltiples sitios web alojados en el mismo servidor? Ejemplo: si un servidor web puede manejar 5000 solicitudes, y hay dos sitios web alojados en ese servidor, ¿esto significa que tiene 5000 solicitudes en ambos sitios web? –