First, I think we have to distinguish between two ideas here:
* The first is the question of whether anyone can learn to program. I think that for the most part everybody can, just like for the most part everybody can learn high school calculus.
* The second is the question of whether programming ability is bimodal. This is not related to the first question, and confusing the two questions is a significant error. It is entirely possible that programming talent is strongly bimodal and that 99% of people can learn to program.
I've been programming since I was 11 and have interacted with other programmers all through high school, college, and now working life, and at every single point of my career -- both academic and professional -- I have seen that some people are drastically faster and better at programming than others (but the others are still capable of learning). In introductory programming courses at college, I've done labs with very smart people who took 10x longer to figure out the lab than some others. They figured it out, but they struggled a lot compared to others, despite being very distinguished undergraduates (Goldwater fellow, etc.).
At work, we've brought on people with 10 years of experience who were 10x slower than someone else with 2 years of experience.
At school, there were master's degree candidates who were significantly worse than many undergraduates despite working just as hard and longer.
I could go on and on and on with examples. From my own life the evidence is simply overwhelming that programming talent is bimodal.