As of the 9th Generation of Pokémon, here are the top 20 heaviest:
Cosmoem and Celesteela are tied for the heaviest with a weight of 2,204.4 lbs.
Primal Groudon is the 2nd heaviest and weighs 2,204.0 lbs.
Eternatus and Groudon is the 3rd heaviest and weighs 2,094.4 lbs.
Mega Metagross is the 4th heaviest and weighs 2,078.7 lbs.
Mudsdale is the 5th heaviest and weighs 2,028.3 lbs.
Guzzlord is the 6th heaviest and weighs 1,957.7 lbs.
Origin Forme Dialga is the 7th heaviest and weighs 1,873.9 lbs.
Stakataka is the 8th heaviest and weighs 1,807.8 lbs.
Calyrex Ice Rider is the 9th heaviest and weighs 1,783.8 lbs.
Glastrier and Melmetal are the 10th heaviest and weighs 1,763.7 lbs.
Zamazenta Crowned Shield is the 11th heaviest and weighs 1,730.6 lbs.
Altered Forme Giratina is the 12th heaviest and weighs 1,653.5 lbs.
Mega Steelix is the 13th heaviest and weighs 1,631.4 lbs.
Cetitan is the 14th heaviest and weighs 1,543.2 lbs.
Ting-Lu is the 15th heaviest and weighs 1,542.6 lbs.
Dialga is the 16th heaviest and weighs 1,505.8 lbs.
Origin Forme Palkia is the 17th heaviest and weighs 1,455.0 lbs.
Copperajah and Orign Forme Giratina is the 18th heaviest and weighs 1,433.0 lbs.
Zygarde Complete Forme is the 19th heaviest and weighs 1,344.8 lbs.
Gouging Fire is the 20th heaviest and weighs 1,300.7 lbs.
For the Heavy Ball, here are the modifiers for SM:
-20 if used on Pokémon weighing at most 220.2 lbs.
No modifier if used on Pokémon weighing between 220.5 lbs and 440.7 lbs.
+20 if used on Pokémon weighing between 440.9 lbs. and 661.2 lbs.
+30 if used on Pokémon weighing at least 661.4 lbs.
(So, if you use a heavy ball on one of these Pokémon listed above, there is a great chance that it'll go in it.)
Source