He can do that. And Anticipate does have to resolve before he can look at his top 3 cards. When he played Anticipate in response to your Crackling Doom, it went on top of the stack, with Crackling Doom under it. The stack resolves from top to bottom, so his Anticipate would resolve first. After it resolves, he still has a chance to cast more instants while Crackling Doom is still on the stack.
These are the specific steps that happened:
- You have priority; you cast Crackling Doom. You pass priority.
- He has priority. He casts Anticipate.
- You both pass priority, causing the top spell on the stack to resolve.
- After Anticipate resolves, you as the active player get priority again. You could cast an instant here; in this case you pass priority.
- He has priority, he casts an instant that he got from Anticipate.
- You both pass priority, causing his new instant to resolve.
- You both pass priority again. If Crackling Doom is still on the stack (if his spell isn't a counter spell), NOW Crackling Doom resolves.
The specific rules about this:
116.3b The active player receives priority after a spell or ability (other than a mana ability) resolves.
116.3c If a player has priority when he or she casts a spell, activates an ability, or takes a special action, that player receives priority afterward.
116.3d If a player has priority and chooses not to take any actions, that player passes. If any mana is in that player's mana pool, he or she announces what mana is there. Then the next player in turn order receives priority.
116.4. If all players pass in succession (that is, if all players pass without taking any actions in between passing), the spell or ability on top of the stack resolves or, if the stack is empty, the phase or step ends.