I think this lemma is indeed true.
$G$ is a continuous function on $[0,1]$ (trivial) therefore it has a maximum and a minimum. We want to check at least one is not attained at 0 or 1. If F is nonzero and $F(1)=0$, then G takes nonzero values and one of the extrema is not attained at 0 or 1. Now suppose F(1) is positive (if necessary consider $-F$; if it's zero, then since). $G(0)=0$ and $G$ takes positive values hence 0 is not the maximum of $G$ on $[0,1]$. We'll now prove $G(1)$ is not the maximum of $G$.
Suppose $\forall x \in [0,1], G(x) \leq G(1)$, therefore $\forall x \in [0,1], F(x) \leq x F(1) = \varphi(x)$. $F(1-h) = F(1) + o(h)$ (since $F'(1)=0$) and $\phi(1-h) = F(1) - h F'(1)$. So, $F(1-h) - \varphi(1-h) = h F'(1) + o(h)$; this is positive in a neighborhood of zero. Contradiction reached, therefore $G(1)$ is not the maximum of $G$.
$G$ hence attains a maximum at a point $c \in (0,1)$; therefore, $G'(c)=0$.
(I'm not 100% sure it is correct, since it does not use the $C^2$ hypothesis.