As of the 7th Generation of Pokémon, here are the top 10 heaviest:
Cosmoem, Primal Groudon, and Celesteela are tied for the heaviest with a weight of 2,204.4 lbs.
Groudon is the 2nd heaviest and weighs 2,094.4 lbs.
Mega Metagross is the 3rd heaviest and weighs 2,078.7 lbs.
Mudsdale is the 4th heaviest and weighs 2,028.3 lbs.
Guzzlord is the 5th heaviest and weighs 1,957.7 lbs.
Stakataka is the 6th heaviest and weighs 1,807.8 lbs.
Altered Forme Giratina is the 7th heaviest and weighs 1,653.5 lbs.
Mega Steelix is the 8th heaviest and weighs 1,631.4 lbs.
Dialga is the 9th heaviest and weighs 1,505.8 lbs.
Origin Forme Giratina is the 10th heaviest and weighs 1433 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.)