Mike,
DLLC supports callbacks, by storing the callback messages in channels, which form a shared table, accessible to all SB progs. Using the channel system, a callback can optionally be relayed to an SB procedure - an interprative callback.
DLLC also enables SB programs to run in separate threads, in parallel with the main.
As I recall, it is necessary to use separate threads for the relayed callbacks, otherwise GPF! SB does not like running more than one procedure at a time in the same thread.
In many instances it may be more practical to periodically monitor the channel table for callback messages, without resorting to threads and all their complications.