Not really. The U.S. can't do anything to a Canadian bank in Canada. They impose a tax on transactions a foreign bank does in the U.S. if the foreign bank doesn't comply. Don't want to comply? Easy. Don't do business with the U.S.
Not saying this is a good idea, mind. It's one of the Obama administration's dumber ideas, among a whole fistful of dumb ideas. Just saying it's not extraterritoriality.
OK, you're technically right.
In principle though, taxes should be residency based. If a Canadian-bank-account holder claims to be a resident of a country other than Canada, then Canada should exempt that account from paying Canadian taxes and just pass his information on to the tax agency of the country he claims to reside in with a note that we are not taxing his account owing to his residency.
Inversely, if a person claims to reside in Canada, regardless of citizenship, not only should his accout be fully subject to Canadian taxes but he should also be protected by the Canadian authorities from having to pay taxes to any other country without his voluntary consent. And if such a lw results in Canadian banks being penalized in teh US, so be it. There is principle to consider here.
The spirit of the law is still extraterritorial though.