Вероятно, надо писать собственную логику раздачи данных потокам.
В принципе, задача не выглядит сложной для человека, кто хорошо ориентируется во внутреннем API BAS. Я не такой человек.
Рекомендую сразу писать так, чтобы можно было оформить в виде модуля, это заставит кодера сначала думать, а потом делать. Что всегда хорошо.
Основная проблема будет, что надо сообщать сущности, которая выдает данные, что элемент из ресурса освобожден. И сложность не в реализации логики, а в том, чтобы не накосячить в ней.
На вскидку я вижу внешнее API так:
инициализация модуля с параметрами название ресурса, кол-во возможных повторных использований getElemFromResource, param: ThreadId, resourceName, return: resourceValue, raises: elemNotAvailableError freeElemFromResource, param: ThreadId, resourceName, resourceValue, return: reuseCountС внутренней реализацией надо думать после проектирования внешнего API.

