Good answer my friend, you are absolutely right, NH3 does have hydrogen bonding where as CH4 only has dispersion forces.
You see Carbon and hydrogen bond in the CH4 is not very polar, they have similar electronegativities, what's more, the molecule CH4 is symmetrical and so it is not a polar in any direction, therefore it doesn't have polar intermolecular bonding and it certainly doesn't have hydrogen bonding, all it has is weak dispersion forces (which are due to random movements of electrons).
Coming to the NH3, the difference between the electro negativities of Hydrogen and Nitrogen are alot different and the N-H bond is polar, and since N is one of the most electronegative atoms, it is one of (you where right in including oxygen and flourine) the strongest polar covalent bonds called hydrogen bonding. Also the molecule is not symmetrical making it a polar molecule, with the lone pair of electrons on the Nitrogen making it easy for other H's on other NH3's attracted to them.
You are right that CO2 is linear because it has no lone pairs, and due to max repulsion, i don't know why you couldn't apply that to the H2O molecule though, Oxygen has two lone pairs, which have their own repulsion forces, they push the hydrogens away from them infact they have such a replusive force that the angle between the hydrogens is actually a little less than it would be than if they where tetrahedral. But you can think of the H2O of being a sort of tetrahedral with the two lone pairs two sides of the tetrahedral, however since they aren't atoms, the molecule itself just looks like a v shape.
But you where right that NH3 is trigonal pyramidal (because of the lone pair as explained above) and that CH4 was tetrahedral.
So i think you did well in this question, if i was a marker i'd give you 9 out of 10
-hope that helped.