it depends on app design. no threads are required to support multiple connections. for example node.js only uses a single thread for all sockets, but because it uses asynchronous I/O it still very fast.
only one thread receives the connection. it can process the connection directly, create a new thread to process. or in a application like IIS, there is a receive thread pool, a send thread pool and process thread pool.
as receiving and sending and are I/O bound, the the thread is often in a wait state (not using cpu). therefore its practical to have many more I/O threads than cores (hundred to thousands). the processing of the request uses cpu, but typical is often I/O bound using disk, databases or network calls, so again more threads than core makes a lot of sense.