Pues puedes emplear el método de subscripción... es decir, dos métodos en tu clase, AddEvent y Remove. Ambos recibirían como parámetro un void*, que sería un puntero a una función (callback). Así, en AddEvent agregarías tu parámetro a un vector de punteros a funciones. Así, cuando lances tu evento, recorres dicho parámetro y mandas llamar la función subscrita.
Si no es muy peligroso, quizás puedas considerar el crear un hilo de proceso por cada función subscriptora. C++ estándar incluye _beginthread y _endthread para la manipulación de hilos, en el encabezado <process.h>.
Saludos.