I was similar... I treated my boyfriend worse than he treats me (he's always caring etc, I'm not) and it seems it was always me that started the rows, for no apparent reason.
However we're much better now, because we talked about it. We got to a point of arguing nearly every night, and decided we either split up or talk it over and do something about it. Neither of us really wanted to split, so we had a good long talk and a cry. I told him I'd change and that I'd be more thoughtful etc. It seems like it will be hard to change, but start off slowly... start by treating him to something when you're out, and to control your jealousy, realise that it's you he is with, not those other girls he may be looking at, or whatever it is you're jealous over.
Just talk with him and get him to tell you what it is he finds wrong, and then you tell him how you're prepared to change for him.