I know you feel like no one can ever find out about this, and I don't want to dismiss that feeling, but it might be the only way to get him to stop. Or at least the threat of telling someone might be enough to scare him off. I think embarrassment is the only way because right now, he thinks he's got you in a corner. He doesn't feel guilty and he thinks you're going to just tolerate it until you finally break down, and no one will ever be the wiser.
I say you make a scene one day. Don't make it about the sexual stuff - make it seem like you're upset about something else, something about work, or the chocolates he's trying to give you or something. And don't do it in an office. One day in the hallway when other people can hear, just start talking louder - say he's being too impatient about the project, or he's being too critical and that makes it difficult to do work, or "Why do you always have to check my work? I know how to do my job!" or something that will make other people look your way. "You know I can't eat that, are you trying to kill me?"
I think once he feels like other people are watching him, he'll stop bothering you. Keep interactions as public as possible.
In short, you need to embarrass him in front of other people.