Why only F, O and N form Hydrogen Bonds?
No, that's not necessary. Amongst the strongest hydrogen bonds are formed by $\ce{ N, O, F}$ because of their high electronegativity.  

There's evidence that the ions $\ce{Cl-, I-, Br- }$ form hydrogen bonds that are much stronger than those of the covalently bonded atoms

$\ce{Cl}$ can form weak hydrogen bonds, but $\ce{Br}$ and $\ce{I}$ form very weak bonds if at all. 

A sulfur atom can also function as weak acceptor., but the $\ce{SH-}$ ion forms much stronger bonds. 

Hydrogen bonding has been directly observed between a negatively charged carbon and an $\ce{-OH}$ group in the same molecule 

Isocyanides' ($\ce{R- N+ #C- }$) carbon atom can also act as an acceptor (forming a rather strong Hydrogen bond). 



Reference: March's Advanced Organic Chemistry, Chapter 3: Bonding weaker than Covalent