В идеальном мире у нас было бы 1 поток / физическое ядро. Таким образом, у нас больше не будет переключателей контекста, которые являются довольно дорогостоящими операциями. Но пока у нас не появятся процессоры с сотнями ядер, это не будет практичным.
В любом случае, как предложил Марк, вам не следует связываться с параметрами ThreadPool, если вы ДЕЙСТВИТЕЛЬНО не знаете, что делаете. Логика, лежащая в основе реализации .Net ThreadPool, довольно хороша, и она может успешно справляться с большинством сценариев.