There are a lot of systems in place to help small market teams, including "profit sharing" and a compensatory draft system.
One of the differences between MLB and NHL is the number of teams that make the playoffs each year. In hockey you get 16, in baseball there is only 8 across the same number of total teams. I'm sure the commissioner would love to change that, but the season is too long as it is.
I am not sure that buying talent helps the top teams as much as it pushes the worst teams down by making it impossible for them to afford to keep their talent.