I think I've seen the statement "I'm just not good at standardized tests" accompanying most posts on low scores, and I always wonder "WHY??". Why are you not good at standardized tests? And why do some people seem so willing to accept this fatalistic opinion of their test taking ability, and thus continue to perform poorly on standardized tests all the while hiding under the umbrella of "Well, I'm just not good at those kinds of tests."?
If you haven't done so already, take some practice tests, and tear them apart afterwards. What did you get wrong, and WHY??? Did you not know enough background material? Do you always get certain types of questions wrong? Do you often select the "attractor" answers? Do you get burnt out near the end of a passage, doing worse on questions 6-9 than on 1-5? It's usually not random, there's usually a pattern, and if you can figure it out, you can break it and get an awesome score. Prep courses are fine, but unless you interpret information the way the instructor does, the "how" they teach you in the course my not be helpful for you (although the review of the material is helpful for most people anyway). Do passages with other people, and talk out why you picked certain answers before you look to see what is correct. I used to hate studying with other people, but in Australia I started doing it, and was surprised at the paths that other people took to get to the same, or a different, answer. If anything, by doing this you can learn different approaches to questions and that can help too.
If you have a good GPA, you are definitely capable of doing well on the MCAT, you just need to figure out why you're not and apply it. If you have a bad GPA, you have two things to figure out. But, like others say on here all the time, it CAN be done. Take the damn thing again, it's a bitch, but I think it's necessary to show that you weren't willing to accept a 20.