я думаю, что вам нужно использовать объект waitHandle и метод waitAll
дополнительная информация здесь: http://msdn.microsoft.com/en-us/library/system.threading.waithandle.aspx
При этом я подозреваю, что вы можете реорганизовать дизайн вашего пакета впусть задача сценария обрабатывает выполнение, и пусть SSIS обрабатывает планирование выполнения.это дает вам желаемый параллелизм без каких-либо хлопот многопоточного программирования в .net.
простая установка будет состоять из n циклов foreach (которые выполняются последовательно), каждый из которых выполняет секционированный кусок рабочей нагрузки.
Другой более простой вариант - иметь пакет, управляемый переменными, и порождать многократное выполнение пакета.Это может произойти на 1-N серверах для масштабирования.