Is there a design pattern that deals with callback mechanism?
Your question is very general, and the most general answer I can think of is to use polymorphism when you have a problem requiring a callback.
Polymorphism allows you to specify a software contract in form of an interface (or an abstract class) about how your callback is to be used. Then clients are free to choose any implementation of the interface they see fit for their purpose.
Whether it is advisable to use the state, strategy, observer pattern or something completely different really depends on the circumstances.
I agree with the other posters about the Observer pattern as well. It's specifically designed for this purpose.
A good pattern description is the Service Callback design pattern. It's part of a catalog of SOA patterns, but the pattern as described can be employed with generic components that are not SOA services.
Another related pattern is the Return Address pattern described in the classic book "Enterprise Integration Patterns" by Hohpe and Woolf.
Josuttis also talks about callback in his book "SOA in Practice". He calls it the Request/Callback message exchange pattern.