Depending on your answer(s) I can see three solutions for you
1) You have an transaction ID that you sent to B and B answer comes with that transaction ID
You can use a ThreadSafeMap. In the GetResponse Handler, you do ThreadSafeMap.Put(TransactionID, Me). Once you get a response back from B in your CallBack Handler, you can do a ThreadSafeMap.Get(TransactionID) to get the object reference of the GetResponse Handler that initiated that transaction to do the CallSubDelayed. After CallSubDelayed, do a ThreadSafeMap.Remove(TransactionID)
2) You have no transaction ID to sent to B, but B responds synchronously to your requests (I do calls 1,2 and three, B responds in sequence 1,2 and 3)
You can use a FIFO queue. You can create one with a List object and a long variable. The list object starts out empty and the long variable starts with -1. When you do you call in GetResponse, you a) set the long variable to 0 if it is -1 (otherwise, leave it alone) and add Me to the List object. Once you get a CallBack, you a) see if the List object has entries, if not, you have a spurious callback b) If the List Size <= long variable, you have a spurious call c) Otherwise use the long integer as an index into the List to retrieve the Me of the GetResponse Handler. Set the value of the List at index long integer to null. Increment long integer by 1. Note: You have lots of calls before you overflow a long (and the List object), but may want to build in a reset
3) You call B in 1 2 3 order, but B can answer in 3 2 1 order and you have no clue how to sort it out. At this point you have to serialize your calls in such a way that only one call to B is made and all others are queued until B does its callback. A tad more complicated.
I'm pretty sure the answer is #1, but until you provide me all the information on how you set up a call to B and how you synchronize/know which callback from B is for what call to B, I can't really tell. So yeah, how B works is pertinent (and I do realize you can't change B)
Edit: Some grammar. May make no sense, it's getting late (plus the disclaimer below).