1. Больше слушай заказчиков. Если он такой эксперт, то зачем вас нанял? .NET прекрасно работает на Linux.
2. 10k rps - это нужно смотреть на то, каких именно запросов в секунду оно должно держать и в каких условиях.
Нужно хотябы уточнить, что именно будет происходить в рамках обработки запроса и сколько железа можно на это выделить. Может вам вообще нужно 10к запросов на какой-то встраиваемой железке делать?
Как уже выше сказали - это достижимо в принципе с любым языком, но опять же зависит от условий.
Также следует различать задержку и пропускную способность. С пропускной способностью в большинства современных фреймворков/языков проблем нет, если есть поддержка асинхронной модели работы.
Если очень важна именно задержка - смотри в сторону C++, Rust, Go.
3. Выбирай то, с чем умеете работать, и на счёт чего вы уверены.
Если уверены, что сможете запустить C# на Linux и достичь нужного результата - берите C#.
Если уверены, что сможете достичь нужного результата на python - берите python.