Delegates are thread safe, so there's no worry about that. (Delegates are immutable after creation, any method that adds or removes a delegate from a multicast delegate is actually returning a new multicast delegate.)
There's a very minor performance penalty for instantiating the delegate objects and garbage collecting them, so if you're using this delegate very frequently, then go with m_callback. However, as I said, this is a very minor penalty unless you're doing it several million times per second.
If you're not doing this frequently, and you want to clean up your code and have less class members hanging around, go ahead and instantiate the callback each time.