Is there any reason that you have not gone to your family doctor and spoken to him/her about this?
I know it may be weird if this person has been taking care of your medical needs forever but you have to understand that they are professonials and this is a normal part of thier regemine of treatment.
They will be able to prescribe medicines or even better yet, refer you to specialists that can run tests and either give you answers or treatments/repairs or even better yet a combo of the two.
Just because you do not get an erection when the pressure is on does not make you gay, (not that there is anything wrong with it ) (sienfeld reference) it could be totally stress related and then there is the possibility that if you were raised in a christian home, your moral values and expectations may be keeping you from going through with it.
The way we always had it explained to us at youth group was, why go to wendy's for a cheese burger when if you wait to get married and learn it all together you get the entire buffet. (this may not apply but I figured I would throw that in just in case)
another ting is that the performance factor could be a real stressful factor. Between school, bills, if you have to work while in school that is stressful and then having to carry the weight of being socially popular on your shoulders is enough to make anyone have some anxiety issues crop up in one way or another. It is normal and for most of us that did not participate in sports durring school and also were not running around in the highly popular cliques in school to not have these types of stress related issues. We got to drop the school attitudes when graduation happened, you on the other hand and most of the folks that were in your circle of friends are probably all carrying around problems and everyone believes that no one is struggling because it is not cool for the popular guys to have issues. It is fine and speaking with your doc can and probably will fix what you believe is broken.
Good luck and I hope this has helped in some way or another,
brian