Did it by creating a *Manager class, which has the THREAD attribute and in it’s CONSTRUCT sets the callbacks (DESTRUCT removes them) - this way, on each thread a new instance is created and the callbacks are added again.
Borrowed the idea from: Thread termination monitoring / was: Passing procedure as a parameter prior to 11.1 - #4 by MarkGoldberg