в общем проблему решил

насколько я понял, в оракле распараллелить задачу можно только джобами, других способов я не нашел.
запустил параллельно в программе в отдельном потоке, а чтоб не виснул главный поток нужно запускать процедуру через отдельную сессию. То есть в поток передаются параметры соединения (имя пользователя, пароль, юрл) и поток открывает отдельную сессию. Правда для остановки потока до его завершения пришлось использовать функцию TerminateThread, что не есть хорошо. Но другого выхода я не нашел.
Спасибо за внимание