This really isn't a gay or straight issue. It's an issue of harassment. I'm with everybody else here. His advances are intrusive, unwanted, and intimidating. You've been nice, you've made the effort. More importantly, you've let him know you don't want to be the target of his advances. I'd say he's had enough warning. If you really feel it necessary, tell him one more time (without waiting for another advance) exactly, bluntly how you feel. I've known people like this in the past though, and my experience is they tend to become vindictive when rejected. With very little effort, he could begin to make you look like the bad guy to management.
As a middle ground, before talking to this guy again, talk to your manager. Tell him/her what is going on, but ask them not to take any action until you have had the chance to try one more time. That way, if his feelings are hurt and he runs to the manager to report YOU for harassment, there will already be record of your concerns. Your butt is covered, and hopefully, no damage is done to him.
If that doesn't work, I'd make a formal report. If he loses his job, or his license, you have nothing to feel guilty about. He will have suffered the consequenses of his own behavior. Welcome to the adult world. You have the right not to be subjected to this kind of unwanted behavior. Good luck.