Please do not get a "sleep aid" for him if that means medication. Do not mess with his body's own biological sleep patterns at this age, even though his sleep patterns are not ideal for the adults in his household. Consider carefully whether this is more about HIS sleep or your own lack of sleep.
Does he seem rested enough in the daytime? Does he have what seems like normal energy and attention? Is he flagging and sleepy and grumpy-tired every day? If the answer is yes, he's rested, he's energetic, and no, he does not seem unusually worn out every day -- then he is getting adequate sleep though you are not. If he is not getting enough sleep to be attentive and energetic during the day, and he is indeed keeling over with tiredness in the afternoons, I would see the doctor for advice. But if not -- then try not to let your own tiredness make you feel there's something wrong with him. Yes, it's legitimate that you're tired because of him and it's not wrong to want a resolution, but the truth is that kids' sleep patterns change ALL their lives. He may start to sleep like a log soon only to start night waking again in a few years. You cannot control another person's sleep, or their toileting, or their eating. This is exactly why sleep, toilet training and food issues are the ones that drive parents insane: We can't force a child to eat, sleep or poop at times or in ways that work for us adults. They are in control.
But they CAN be trained if the adults are patient enough and don't let it become a battle of wills.
Some things to consider:
Does he have a very, very consistent bedtime routine that helps him wind down, and that lets him know he can expect exactly the same steps toward bed every single night? Consistency is important. TV should never be part of the routine, ever; the flickering images of even the calmest kiddie shows still stimulate kids' brains too much. Be sure he gets the same routine every night, and start it well before lights out time -- if you start a bedtime routine 10 minutes before lights out, that is not nearly enough time for some kids to get relaxed.
How does he react if you leave him (after the routine) and do not stay in his bed until he is asleep? If you have done this all his life, he has never learned how to go to sleep on his own; that is best learned when kids are much younger, so you will need to re-train him on this, but that does not mean he has to endure tearful meltdowns every night.
When it is daytime and things are calm, talk to him about the new bedtime routine. You will read to him and stay in the room after lights out for 10 minutes then you WILL leave. If that scares him, say that you will check on him 10 minutes after you leave. He likely will stay awake for that -- so do check 10 minutes later, silently; stick your head in the door but do not walk into the room or go sit on his bed. Let him see that you do keep your word about checking.
Let this go on for weeks if you need to. Simple. Calm. Same thing every night, no exceptions. Do not talk to him or engage him or let him start chatting when you check in his room. Tell him, "No talking, it's sleep time." Then go.
If he gets up then or in the night: He doesn't stay in your bed. Silently get up, walk him to his room (guide him with a gentle but firm hand on his shoulder) and silently guide him to his bed, cover him swiftly and leave. Don't sit down or lie down until he's asleep again. When he gets up again -- you get up, silently walk him back. Over and over and over if you must. He is testing you; do not get angry or fuss at him or lecture; do not talk at all except maybe to say "Night is for sleeping" the first time. No words after that. You will feel angry and tired but get up and walk him back silently EVERY time without arguing or chiding him. He has to learn that getting up in the night does not get him the reward of sleeping with you. If he cries or says he had a bad dream, tell him "I'm so sorry you had a bad dream" and return him to bed.
This is a really common way to teach kids to stay in bed, but it's a process normally done when kids are much younger than your son. So be warned that you might need a long time to retrain him this way. And you and your husband have to both be on board with the silent and repeated return. Talking to him in the night is a reward, to him. You are NOT punishing him for getting up, but you are taking away any interaction or any time in your bed.
Basically, you don't need meds, hypnosis or a sleep specialist; you need to retrain him with a routine that is usually done with toddlers, so it will be more effort for you at this point. Don't punish him or treat this as "he's being naughty on purpose" because he isn't -- he only knows how to sleep the way he's always slept, and he can't help that, and it's going to be upsetting for him at first to find out that he has to learn to sleep a new way. But you as the adults have to teach him a new way that works for all of you.
And it's not a problem or a flaw if he has a vivid imagination either. It's common for kids' minds to take off when they're supposed to be sleeping and the kids can't stop thinking. This is why a routine that's consistent and long enough can help.
Find books by the "Supernanny" Jo Frost. She has good info about getting kids to stay in bed.