Your manager is probably under pressure to justify your time estimates, thus the friction. This kind of friction is part of the work environment, there are lots of books, classes, coaching sessions available that will teach you how to interact with different people and personality types so you can do your job.
More importantly for the customer ( and for your own ease of mind ), have you established a track record for the effort it takes to deliver a project, or talked with others in the industry about your time estimates? A good way to approach this kind of problem is to find a senior programmer who can give you some guidance on how long things should take so you get a sense of how you are doing relative to industry expectations. Once you have a sense for how long things 'should' take, you can apply your soft skills to the task of negotiating with your manager for more time as appropriate.
The customer may expect things better, faster, and cheaper, but in general they only get two of those three things. I've had potential customers say things like, "We have X budget and we want to become an online leader in our space." Just because they want it does not mean it will happen. Things take as long as they take.
Of course, if you really want to excel, find a way to do the same work better, faster, and cheaper. Like I said, mostly that is not what the customer gets, but if you can do it, you will get props from your manager and your customers. Automation, improved tools, better processes - these are your friends.