Does changing the room where he sleeps make a difference? I would do an experiment and try to have him sleep in your room (sleeping bag on the floor) and see if he still gets them. When DS was 3 he would wake up crying with fear over nightmares every.single.night between 12-1am (right when DH and I would be falling into a deep sleep cycle too...fun times!). This continued for months. Finally, we moved him to our room for a different reason (I had to put both kids to sleep at the same time and didn't feel like moving him) and he didn't wake up with a nightmare that night. I was shocked and tried it again - same deal. He hasn't had a nightmare like that in over a year (the time he's been back in our room). It was a total win/win situation for us.
Mom of 4: Boy (10), Girl (7), Boy (4), Girl (2)