In the end, that power comes form the mindless masses. We insist on voting party instead of candidate. As a result, the MP who knows this knows that if he wants to retain his seat, he must suck up to the PM. However, that is not legal power but de-facto power given by the mindless masses. If people voted for the best candidate instead of for his party, then candidates would be less scared to voice their ideas, knowing that being booted from Caucus would not necessarily end his career as an MP at least. This would weaken the position of the PM substantially. Officially though, the PM's power is mostly limited to his one vote as MP in Parliament.
Ah, but then the mindless masses would actually have to have a mind. Sadly, this is not likely to happen and people will keep on voting for the party that will do them the least amount of good.
Canada, and most other democratic nations are pretty much stuck with the party system for several reasons.
1. Parties are easier to understand than individual candidates. Candidates you actually have to meet to understand them; with parties you just have to have a vague idea about their policies.
2. Parties have enormous financial power and can easily outspend independent candidates.
3. Independent candidates are largely ineffectual when it comes to getting anything done.
4. Voters prefer to be part of a movement. Parties represent such a movement; individuals do not.
5. Independent candidates cannot muster the army of campaign workers and supporters necessary to be successful in modern politics.