O que vc pode fazer é copiar o modelo de processos de atendimento de serviço, onde um processo principal liga-se ("bind") à conexão ("socket"), e a cada novo pedido de conexão, abre um novo processo ("fork"), deixando o processamento da nova requisição para o novo processo.
O que vc teria que fazer então seria adequar as primitivas usadas para o caso de threads, em vez de processos.
Mas ainda assim, precisaria reescrever o código.
Por curiosidade, de quantas requisições por segundo estamos falando? E quanto tempo há pra processar cada requisição?