We know that the result is true for finite groups (by the group-action argument you're familiar with).
But if there's only finitely many elements of order $p$, we can look at $H$ the group generated by those elements. It is finite, and contains all the elements of order $p$. So the result holds for $H$, and since $H$ has all the elements of order $p$, the result holds for $G$.
I hope this helps ^_^
Added by Derek Holt: proof that $H$ is finite. Since $H$ is generated by the elements of order $p$ and there are only finitely many, they have only finitely many conjugates, so their centralizers have finite index in $H$. So the intersection of their centralizers, which is the centre $Z(H)$ of $H$ has finite index in $H$.
Now, by a result of Schur, the derived group $[H,H]$ is finite. Since $H/[H,H]$ is an abelian group generated by finitely many elements of order $p$, it is also finite, and hence $H$ is finite.