This is a question closely related to the Git model itself: all commits (with the exception of the initial commits) have at least one parent:
+--- G + A +- B +- C +- D +- H + + +----|--- E | +--- F
which means that all the commit can be considered as nodes of a directed acyclic graph, where initial commits are the roots; the leaves of this directed acyclic graph are the branch tips.
Re HEAD, from git(1):
Named pointers called refs mark interesting points in history. A ref may contain the SHA-1 name of an object or the name of another ref. Refs with names beginning ref/head/ contain the SHA-1 name of the most recent commit (or "head") of a branch under development. SHA-1 names of tags of interest are stored under ref/tags/. A special ref named HEAD contains the name of the currently checked-out branch.
This description doesn't apply so well in detached HEAD scenarios (since the branch doesn't really have a name), but it still describes it very well, if you think of that situation as an anonymous branch.
In short, HEAD is a pointer to a commit (in a manner of speaking - it's generally more accurate to think of HEAD as a pointer to a ref, which in turn points to a commit), whereas branch tips refer to a specific type of commit, those with no descendants.