I think there’s a lot going on here, yes your partner doesn’t sound great but it’s a lot deeper than that.
Firstly you don’t seem to feel comfortable actually being sexual in front of him—you say you’re too embarrassed to masturbate in front of him. That needs knocking on the head!!! You can’t let yourself go in front of him, therefore I don’t know how he could please you if he wanted to. Also, he possibly doesn’t really see you in a sexual way—like he sees you as a 5 minute shag rather than someone sensual. You could try masteubating in front of each other, that kind of thing?
It sounds like you’re not sure what gets you going sexually. You need to set up intimate situations to explore—wine bubble bath, massages, a sexy bar date where you make out and takes ages to get home, ice nipples, that kind of thing. Watch sexy movies together (no not hardcore porn! Things like Troy and movies with sexy people you like). Touch yourself and him.
Turn the lights down low for the first while, if you feel self conscious, but are you comfortable being naked in front of him? If not, get started with that, and lots of skinny dipping! Or shooting together. Need to be comfortable in your own skin.
What makes you feel sexy? Any particular clothes, hair or makeup? A date where you go somewhere sleek and dark, where you feel sexy, is a great starter.
When it comes to asking what you want, men are dumb. Sometimes you need to show them. And if you have a pace you prefer, enforce it. Like dry hump on the couch for ages, pants stay on, or at least his do.
If you’re nervous and find it hard to be comfortable in your skin, maybe try a bit of booze? Not saying get plastered but it might take the edges off