If he was born and raised outside of Canada then no he would not be Canadian. My Wife is Canadian she was born and raised in Canada she is neither American or Mexican.
Your son would be eligable to hold a Canadian passport and represent Canada in the Olympics (example used before for Cain), even if he was born and raised in England.. he would have as much right as anybody from Canada to be Canadian.
I can't imagine any scenario where my son would not be English - because i am English, Cain's father is Mexican and Cain has every right to be Mexican - he is Mexican, ontop of this to my knowledge he has never said anything bad about the US.
I really don't get this argument, these things are personal choice.