A slightly more effficient version of Hardy's argument, which at the same time proves Taylor's theorem with the Lagrange form of the remainder goes as follows:
Assume that $f$ is $n$ times differentiable at $a \in \mathbb R$. Then consider, for $C$ any constant,
$$
G(t) = f(a+t)-\sum_{j=0}^{n-1}\frac{1}{j!}f^{(j)}(a)t^k - \frac{1}{n!}C.t^n
$$
Note that for each $k$, $0\leq k \leq n-1$ we have
$$
G^{(k)}(t) = f^{(k)}(a+t) - \sum_{j=k}^{n-1}\frac{1}{(j-k)!}f^{(j)}(a)t^{j-k}- \frac{1}{(n-k)!}Ct^{n-k}
$$
and so in particular, $G^{(k)}(0)=0$ for all $k\in \{0,1,\ldots,n-1\}$.
Now for any $h\neq 0$ we may choose the constant $C$ so that $G(h)=0$ -- that is, we set $C(h)=(n!/h^n).\{f(a+h)-\sum_{j=0}^{n-1}\frac{1}{j!}f^{(j)}(a)h^j\}$). Then for this choice of $C$ we have $G(0)=G(h)$, so that there is some $h_1$ in the open interval between $0$ and $h$ with $G'(h_1)=0$. Since $G'(0)=0$, this implies there is some $h_2$ between $0$ and $h_1$ with $G''(h_2)=0$. Continuing in this way for each $k=1,2,\ldots,n-1$ we find that there is some $h_{n-1}$ lying between $0$ and $h$ with $G^{(n-1)}(h_{n-1})=0$.
But $G^{(n-1)}(t) = f^{(n-1)}(a+t) - f^{(n-1)}(a)-C(h).t$, and hence $C(h)=h_{n-1}^{-1}\{f^{(n-1)}(a+h_{n-1})-f^{(n-1)}(a)\}$. Now if $f$ is $n$-times differentiable at $a$, then since $h_{n-1}$ lies between $0$ and $h$, $\lim_{h\to 0} C(h) = f^{(n)}(a)$. But now recall that $C(h)$ was chosen so that $G(h)=0$, hence
$$
f(a+h) = \sum_{j=0}^{n-1} \frac{1}{j!}f^{(j)}(a).h^k +\frac{1}{n!}C(h).h^n
$$
and we have just shown that $C(h)\to f^{(n)}(a)$ as $h \to 0$, hence $|f(a+h)-
\sum_{j=0}^n \frac{1}{j!}f^{(j)}(a)h^j| = o(h^n)$ as required.
Note that if one knows that $f$ is $n$-times differentiable in a neighbourhood of $a$, then the fact that one has $G^{(n-1)}(0) = G^{(n-1)}(h_{n-1})$ implies that there is some $h_n$ between $0$ and $h_{n-1}$ with $G^{(n)}(h_n)=0$. Since $G^{(n)}(t) = f^{(n)}(a+t)-C(h)$ it follows that $C(h)= f^{(n)}(h_n)$, and one thus obtains Tayor's theorem with the Lagrange form of the remainder.