The way I like to stock tanks is to choose on a basic idea of a tank (community, aggressive, etc) and stock it gradually, deciding on species as I go. By adding fish one species at a time and observing the tank you can get a good idea of what the tank needs (according to your own taste and judgement) and what 'holes' can be filled, while learning the behavior of each fish seperately and ultimately achieving a better balance in the tank.
According to the surface area of this 20 gallon(L), the tank will be able to safely stock up to 30" of fish
What you can stock, what you should stock, and what you want to stock are different.
For example I might technically be able to squeeze 50" of fish in a 20 gallon tank, but my filtration and maintenance routine might only allow for 25" of fish, and my personal taste may lean toward heavier decoration and only 20" of fish. Of course all this talk of inches is only for small, slim bodied fish anyway so this whole topic of inches per gallon can go out the window pretty easily.
I guess my point is that there are no reliable rules of thumb, instead excersize patience and take it one step at a time to get a feel for things. Fully stocking your first tank in one go based on rules of thumb is a good way to end up with problems, IMO.
I've also researched from various sources that Apollo and Bala sharks do not grow to maximum size when kept in aquaria.
When fish don't grow to their max size it is because they are kept in tanks that are too small. The best thing to do is buy fish that can grow fully in the tank you are keeping, rather then keeping stunted fish that should be bigger.
Of course, these are theories I have developed through experience, and a lot of people may not agree, but hopefully I've given you something to think about anyway.