Let ${\mathcal D}(f)$ be the set of points at which $f$ is not continuous. The correct result is:
Theorem: Let $f:[a,b] \rightarrow {\mathbb R}$ be bounded. Then the following are equivalent:
(a) $\;f$ is Riemann integrable on $[a,b].$
(b) $\;{\mathcal D}(f)$ is a countable union of closed Jordan measure zero sets.
(c) $\;{\mathcal D}(f)$ is an ${\mathcal F}_{\sigma}$ Lebesgue measure zero set.
Nothing special is needed to prove this other than an examination of the usual proof characterizing the Riemann integrability of a function in terms of the zero measure of the set of points at which the oscillation of the function is greater than or equal to any specified positive real number. (Since these sets are closed, it doesn't matter whether we say Jordan measure or Lebesgue measure.) The countable union aspect shows up when we take the union of all such sets corresponding to the positive real numbers $\frac{1}{n}$ (as $n$ varies over the positive integers) in order to form the set of all points at which the function is not continuous.
A surprisingly little known consequence of this theorem is that the discontinuity set for any Reimann integrable function has both Lebesgue measure zero and is of the first (Baire) category (i.e. is meager). This is because any closed measure zero set (again, since "closed" is used, both Jordan and Lebesgue measures agree) is nowhere dense (a nearly trivial observation), and hence a countable union of closed measure zero sets is a first category set.
Incidentally, there exist sets that are both Lebesgue measure zero and first category (i.e. the sets are small in both the Lebesgue measure sense and the Baire category sense) which are too big to be covered by any discontinuity set of a Riemann integrable function, or even by the union of the discontinuity sets of countably many Riemann integrable functions. (I say "covered" because the issue is size, not Borel type. I'm disallowing someone from simply picking a non-${\mathcal F}_{\sigma}$ set, and letting this be the example by saying that the discontinuity set always has to be an ${\mathcal F}_{\sigma}$ set.) For more about this issue, specifically the fact that the $\sigma$-ideal of sets generated by the discontinuity sets of Riemann integrable functions is properly contained in the $\sigma$-ideal of sets that are simultaneously Lebesgue measure zero and first category, see my 30 April 2000 sci.math essay HISTORICAL ESSAY ON F_SIGMA LEBESGUE NULL SETS.
We can use the following:
Lemma. If $f$ is continuous on $[a,b]$ then for any $\epsilon > 0$ there exists $\delta > 0$ such that for any partition $P$ of $[a,b]$ with $\|P\| < \delta$ and any refinement $R$ of $P$, we have $|S(f,P) - S(f,R)| < \epsilon$.
Applying the lemma, we can show that if $f$ is continuous, then the Cauchy criterion is satisfied. That is, for any $\epsilon >0$ there exists $\delta > 0$ such that if $P$ and $Q$ are any partitions satisfying $\|P\|, \|Q\| < \delta$, then $|S(f,P) - S(f,Q)| < \epsilon.$
To see this, let $R = P \cup Q$ be a common refinement and take $\delta$ as specified in the lemma such that if $\|P\|, \|Q\| < \delta$, we have $|S(f,P) - S(f,R)| < \epsilon/2$ and $|S(f,Q) - S(f,R)| < \epsilon/2$. Whence, it follows that
$$|S(f,P) - S(f,Q)| \leqslant |S(f,P) - S(f,R)| + |S(f,Q) - S(f,R)| < \epsilon/2 + \epsilon/2 = \epsilon.$$
It remains to prove the lemma.
Since $[a,b]$ is compact, $f$ is uniformly continuous and for any $\epsilon > 0$ there exists $\delta >0$ such that if $|x - y| < \delta$, then $|f(x) - f(y)| < \epsilon/(b-a)$. Suppose $\|P\| < \delta$ and $R$ is a refinement of $P$. Any subinterval $[x_{j-1}, x_{j}]$ of $P$ can be decomposed as the union of subintervals of $R$,
$$[x_{j-1},x_{j}] = \bigcup_{k=1}^{n_j}[y_{j,k-1}, y_{j,k}],$$
and
$$\begin{align}\left|S(f,P) - S(f,R)\right| &= \left|\sum_{j=1}^n f(\xi_j)(x_j - x_{j-1}) - \sum_{j=1}^n \sum_{k=1}^{n_j}f(\eta_{j,k})(y_{j,k} - y_{j,k-1})\right| \\ &\leqslant \sum_{j=1}^n \sum_{k=1}^{n_j}|f(\xi_j) - f(\eta_{j,k})|(y_{j,k} - y_{j,k-1}) \\ &\leqslant \sum_{j=1}^n \sum_{k=1}^{n_j}\frac{\epsilon}{b-a}(y_{j,k} - y_{j,k-1}) \\ &= \epsilon\end{align}$$
Best Answer
Sketch: we can confine all but finitely many discontinuities of $f$ into a small interval $I$. Outside $I$, we can choose a partition fine enough to make the upper and lower sums arbitrarily close. Simultaneously, since $f$ is bounded, we can choose $I$ small enough that it cannot contribute too much to the difference between the lower and upper sums.
Details:
Since $f$ is bounded above and below, we can subtract off the lower bound in order to assume without loss of generality that $f \geq 0$. Having done so, choose $M$ such that $f \leq M$.
Let $\varepsilon > 0$. Choose $N$ large enough that $M/N<\varepsilon/2$. Choose a partition $P$ of $[1/N,2]$ whose mesh is small enough that the lower and upper sums for $P$ differ by at most $\varepsilon/2$. (Here I assume we have already proven that a function with finitely many discontinuities is Riemann integrable.)
Now extend $P$ to a partition $P'$ of $[0,2]$ by adding in the points $0$ and $1/N$. The difference between the lower and upper sums on $[1/N,2]$ is still at most $\varepsilon/2$, while the difference between the lower and upper sums on $[0,1/N]$ is also at most $\varepsilon/2$, since $0 \leq f \leq M$ there. So the difference between the lower and upper sums for $P'$ is at most $\varepsilon$.
We can tweak this to look much like the proof of the Lebesgue criterion. Set up the same as above, but where $M/N<\varepsilon/3$ instead. Take $\delta>0$ small enough that $MN\delta<\varepsilon/3$. Take intervals of length at most $\delta$ around $1,1/2,\dots,1/N$ in your partition. Then refine the rest of the partition enough that the difference between the upper and lower sums is less than $\varepsilon/3$ there (which we can do because $f$ is continuous there). Then again the lower and upper sums for the overall partition is at most $\varepsilon$ ($\varepsilon/3$ from the small intervals near the "widely spaced" discontinuities, $\varepsilon/3$ from the small interval containing the "tightly packed" discontinuities, and $\varepsilon/3$ from the continuous part).
Here I add in the assumption that $f$ is bounded, because unbounded functions are never Riemann integrable (since there is always a subinterval of the partition where the upper or lower sum is infinite).