Создаем в клиенте 10 потоков. В каждом коннектимся к серверу. Со стороны сервера поддержка нескольких подключений тоже необходима. Сервер видит нас как отдельных клиентов.
Но выглядит это странно.
Если клиент однопоточный, то можно иметь "виртуальные" соединения. Каждое сообщение передается через одну пару сокетов, но в самом сообщении записан список id или имен получателей внутри клиента. Например если у нас игра с несколькими юнитами, то это не значит что действие каждого юнита передается через отдельное соединение.
Так же можно разделить клиента на отдельные процессы, а обмен между ними организовать через локальные сокеты или пайпы.