NHL brought in the salary cap system following the 2004-05 lockout, because the league wanted to implement salary cap following the expiration of the previous agreement.
The fact that it was a lockout, and not a strike, that the lockout lasted a whole season, and that the players ended up voting like 90% in favour tells you which side the leverage is on.
The players might bring the majority of the value, but the current CBA sets the salary cap to basically a 50/50 split between players and owners.
It truly is cartel-like behavior, but I don't think the union can do much as long as hockey players want to make a lot of money playing hockey in North America.