Поток: является реальным потоком ОС, имеет дескриптор и идентификатор.
ThreadPool: - это коллекция уже созданных потоков ОС. Эти потоки принадлежат / поддерживаются средой выполнения, и вашему коду разрешено «заимствовать» их только на некоторое время, вы можете выполнять только кратковременную работу в этих потоках и не можете ни изменять состояние потоков, ни удалять эти темы.
Лучшие предположения по этим двум:
Задача: может запускаться в предварительно созданном потоке в пуле потоков или может запускаться как часть планирования в пользовательском режиме, все это зависит от того, что среда выполнения считает лучшим. Другое предположение: в TPL планирование в пользовательском режиме НЕ основано на волокнах ОС, а является собственной полной (и работающей) реализацией.
Parallel.For: на самом деле, понятия не имею, как это реализовано. Среда выполнения может создавать новые потоки для выполнения параллельных битов или гораздо более вероятно использовать потоки пула потоков для параллелизма.