Вам нужно настроить задачу, которая будет выполняться Parallel.ForEach, с собственным механизмом тайм-аута, который завершит поток задачи, не выполняя операции, но и не сообщая Parallel.ForEach, что существует проблема, достаточно большая для это завершить всю операцию.