Assuming $f$ is continuous at $x_0.$ It is equivalent to show $g'(0)=c$ where $g(x)=f(x+x_0)-f(x_0).$ That is, to show $\lim_{x\to 0}\frac {g(x)}{x}=c.$
We have $\lim_{x\to 0}g'(x)=c$ and $\lim_{y\to 0}g(y)=g(0)=0.$
Since $\lim_{x\to 0}g'(x)=c,$ there exists $x_1>0$ such that $g'$ is bounded on $(0,x_1).$ For $x\in (0,x_1)$ let $M(x)=\sup_{z\in (0,x)}g'(z)$ and $m(x)=\inf_{z\in (0,x)}g'(z).$
For $0<y<x<x_1$ we have, by the MVT, $g(x)=g(y)+(x-y)g'(z_{x,y})$ for some $z_{x,y}\in (y,x).$ So $$\frac {g(x)}{x}=\frac {g(y)}{x}+(1-\frac {y}{x})g'(z_{x,y}).$$ Therefore $$\frac {g(y)}{x}+(1-\frac {y}{x})M(x)\geq \frac {g(x)}{x}\geq \frac {g(y)}{x}+(1-\frac {y}{x})m(x).$$
Now keeping $x$ fixed and letting $y\to 0,$ since $\lim_{y\to 0}g(y)=0,$ we have $$M(x)\geq \frac {g(x)}{x}\geq m(x)$$ for all $x\in (0,x_1)$.
Since $c=\lim_{x\to 0+}M(x)=\lim_{x\to 0+}m(x),$ we have therefore $ \lim_{x\to 0+}\frac {g(x)}{x}=c.$
Similarly, $\lim_{x\to 0-}\frac {g(x)}{x}=c.$
Remark . The change from $f$ to $g$ is not really necessary. It reduces what I call the "clutter", to make it easier to follow.