Why does sulfur, but not oxygen, catenate?
First, a note: while oxygen has fewer allotropes than sulfur, it sure has more than two! These include $\ce{O}$, $\ce{O_2}$, $\ce{O_3}$, $\ce{O_4}$, $\ce{O_8}$, metallic $\ce{O}$ and four other solid phases. Many of these actually have a corresponding sulfur variant. However, you are right in a sense that sulfur has more tendency to catenate… let's try to see why!

Here are the values of the single and double bond enthalpies:
$$\begin{array}{ccc} \hline
\text{Bond} &amp; \text{Dissociation energy / }\mathrm{kJ~mol^{-1}} \\ \hline
\ce {O-O} &amp; 142 \\
\ce {S–S} &amp; 268 \\
\ce {O=O} &amp; 499 \\
\ce {S=S} &amp; 352 \\ \hline
\end{array}$$
This means that $\ce{O=O}$ is stronger than $\ce{S=S}$, while $\ce{O–O}$ is weaker than $\ce{S–S}$. So, in sulfur, single bonds are favoured and catenation is easier than in oxygen compounds.

It seems that the reason for the weaker $\ce{S=S}$ double bonds has its roots in the size of the atom: it's harder for the two atoms to come at a small enough distance, so that the $\mathrm{3p}$ orbitals overlap is small and the $\pi$ bond is weak. This is attested by looking down the periodic table: $\ce{Se=Se}$ has an even weaker bond enthalpy of $\ce{272 kJ/mol}$. There is more in-depth discussion of the relative bond strengths in this question.

While not particularly stable, it's actually also possible for oxygen to form discrete molecules with the general formula $\ce{H-O_n-H}$; water and hydrogen peroxide are the first two members of this class, but $n$ goes up to at least $5$. These "hydrogen polyoxides" are described further in this question.