My question is how how to start the initial assumption. I thought about starting the demonstration assuming $P(x_{0})$ and then use the universal generalization to deduce $\forall x P(x)$:
(1) $x_{0}$ $P(x_{0})$ supposition
(2) $P(x_{0})$ copy of (1)
(3) $P(x_{0}) \to P(x_{0})$ implication of (1) and (2)
(4) $\forall x (P(x) \to P(x))$ Universal generalization (1)-(3)
Yes, that is the very idea. I prefer to add indentation to keep track of assumption scopes, and to place square braces around an introduced variable; but that's just style choice.
Step three is somewhat redundant, as reiteration is more usually used when the repeated line isn't in immediate proximity. However, there is nothing wrong with using it here.
Now, some systems combine a few of the steps, in which you get the much abreviated