I have similar issues and I can trace my problems way back to even before I started school. Already by the time that I was 5 I was extremely hard on myself and I didn't take rejection or failure very well.
There are only two possible explanations to which I can attribute to this perfectionistic attitude: 1) I was born with it. Or 2) I was spanked as a child. (Or 3 - a combination of both)...
I learned at a very, VERY early age, that if you make a mistake, very bad things will happen... And that if you did something right, you got love, attention and respect. My parents were always critical as well. (My father, specifically). If I got a report card from school that had all A's except for 2 subjects (which were B+'s), he would say "hey -- what happened with these two??". We got rewarded for positive outcomes, NOT for the EFFORT that was involved in the task.
My mom tells me that by the time I was 5 and starting school, I was already a perfectionist. I obviously don't remember my childhood that well at an early age. But what I do remember of it was that I needed to be perfect or I didn't get love and affection.
I try very, very, VERY hard, to teach my children that "it's okay to make a mistake". It's not what you do when you made the mistake that matters -- what really counts is what you do AFTER. Mistakes are opportunities for learning.
I also try to recognize when I make a mistake, and I model appropriate behaviour. Like if spin around carrying something and knock a vase or a glass on the floor, I would say "Oops -- I made a pretty silly mistake. I better get to work right away and clean up this mess".
I also give love and affection freely, and with no relation whatsoever to their performance. If they do something that I really think is spectacular, I try not to comment on their performance, but only on the efforts that they made. I don't give praise & rewards, nor punishments (they are basically just opposite sides of the same double-edged sword). Instead I give encouragement, love, constructive criticism, and assurances that I have faith that they can work it out and manage it on their own -- if, after they've had a go at it,they still need assistance, then I step in and give a hand. I try to let them learn from their own mistakes instead of making all of the decisions for them.
I think it's working. Although I have a particularly hard time with my son because he was born like me -- he is also very hard on himself. I remember one situation recently -- he was using up all of the printed schedules at his Karate school to make paper airplanes (a new love of his). And I brought it to his attention that he shouldn't be making paper airplanes with the schedules because Sensai printed them for the parents and they needed them for that purpose. He then proceeded to hide the paper airplanes from Sensai because he didn't want to make him mad. I encouraged DS to come forward and explain to Sensai that he didn't know he was doing something wrong, and that Sensai wouldn't be mad. I convinced DS that the best thing to do was to come forward about his mistake and not to hide it. I did the talking for him, because he couldn't at the time. Sensai was great -- he told DS "I'm not mad, because no-one told you that you couldn't make paper airplanes. But now you know -- and as long as you don't do it again, we're good." He hasn't made paper airplanes with the schedules since, and he was all smiles after that because Sensai wasn't mad at him after his mistake
I think we're slowly getting there, but DS does frequently do things without thinking and he learns very quickly that there are consequences that he doesn't like from his thoughtless actions. But we're slowly managing to convince him that everyone makes mistakes -- the right thing to do is not to hide the mistake, but to try as best you can to fix it right away.