Here's a thought on how to prove $(b) \implies F \text{ of BV}$:
Define a linear functional $I: C_c^1(\mathbb R)\to \mathbb R$ by $I(\phi) = -\int_{\mathbb R} \phi'(x) F(x) \, dx$. By (b), we have $|I(\phi)|\le A\Vert \phi\Vert_\infty$ for all $\phi\in C_c^1(\mathbb R)$.
Since $C_c^1(\mathbb R)$ is dense in $C_0(\mathbb R)$ and $I$ is Lipschitz, we can extend $I$ to all of $C_0(\mathbb R)$ and obtain a bounded linear functional
$I: C_0(\mathbb R) \to \mathbb R, \qquad \phi \mapsto I(\phi)$
Now by Riesz' representation theorem, there is a finite regular Borel measure $\mu$ associated to $I$, such that $I(\phi) = \int_\mathbb{R} \phi \, d\mu$ for all $\phi \in C_0(\mathbb R)$. In particular, for all $\phi \in C_c^1(\mathbb R)$, we obtain $\int_\mathbb{R} \phi \, d\mu = - \int_\mathbb{R} \phi'(x) F(x) \, dx$ (the idea is that the RHS is "$=\int \phi(x) \, dF(x)$" if $F$ is of BV) So we next want to examine, whether $\mu([a,b]) = F(b) - F(a)$ for $a,b\in \mathbb R$.
For this, consider an approxmation $\phi_{\epsilon,\delta}(x)\in C_c^1(\mathbb R)$ to $\chi_{[a,b]}$, whose derivative is continuous, piecewise linear and satisfies
$\phi'_{\epsilon,\delta}(x) = \begin{cases} (2\epsilon)^{-1} & x\in (a-\epsilon, a+\epsilon) \\ -(2\epsilon)^{-1} & x\in (b-\epsilon, b+\epsilon) \\ 0 & x\notin (a-\epsilon-\delta,a+\epsilon+\delta)\cup(b-\epsilon-\delta,b+\epsilon + \delta)\end{cases}$
Now let $\epsilon_n \to 0$, and choose $\delta_n$ (small compared to $\epsilon_n$) in such a way that $\phi'_{\epsilon_n, \delta_n}$ approximates $\frac{1}{2\epsilon_n}(\chi_{(a-\epsilon_n, a+\epsilon_n)} - \chi_{(b-\epsilon_n, b+\epsilon_n)})$ sufficiently well for the following:
Assuming that $a,b$ are Lebesgue points of $F$, we obtain \begin{align} \mu([a,b]) &= \lim_{n\to \infty} \int \phi_{\epsilon_n, \delta_n} \, d\mu \\ &= \lim_{n\to\infty} - \int \phi'_{\epsilon_n, \delta_n}(x) F(x)\, dx \\ &= \lim_{n\to\infty} - \frac{1}{2\epsilon_n} \int_{B_{\epsilon_n}(a)} F(x) \, dx + \frac{1}{2\epsilon_n} \int_{B_{\epsilon_n}(b)} F(x) \, dx \\ &= F(b) - F(a) \end{align}
Since the first limit always exists and since almost every point of $\mathbb R$ is a Lebesgue point of $F$, we may define a function $\tilde F$ which is $=F$ a.e. by setting
$\tilde F(x) = \mu([x_0,x]) - F(x_0)$
where $x_0$ is a Lebesgue point of $F$. Then $\mu([a,b]) = \tilde F(b) - \tilde F(a)$ for all $a,b$.
But then for any partition x_0 < x_1<\dots < x_n, we have \sum_{i=1}^n \left|\tilde F(x_i) -\tilde F(x_{i-1}) \right| \le 2\Vert \mu\Vert = 2\Vert I\Vert <\infty (I guess one could avoid the factor of $2$, if one defined $\tilde F$ in such a way that $\tilde F(b) - \tilde F(a) =\mu((a,b])$...)
In particular, $\tilde F$ is of bounded variation.