If $M$ is any space homotopy equivalent to a finite-dimensional CW complex, then there is an integer $N$ for which any bundle over $M$ is of the form $\xi\oplus\text{triv}$, where $\xi$ is a bundle of rank $\leq N$. If $M$ is homotopy equivalent to a compact CW complex, then $KO(M)$ will be finitely generated.
The first part follows from the fact that $\widetilde {KO}(M)\cong[M,BO(\infty)]$. The map $BO(n)\rightarrow BO(\infty)$ is $N$-connected, so if $M$ is (homotopy equivalent to a) CW complex of dimension $\leq n$, there is a surjection $[M,BO(n)]\rightarrow\widetilde{KO}(M)$. This shows that every virtual vector bundle over $M$ is represented by vector bundle of rank $\leq n$.
On the other hand, suppose that $M$ is homotopy equivalent to a finite CW complex. By homotopy invariance of the homology functor we may as well assume that $M$ is a CW complex. If $\dim M\leq 0$, then $M$ is a finite set of points and of course $KO(M)$ is finitely generated.
Now suppose that we can show that $KO(M)$ is finitely generated whenever $\dim M\leq n$, and that $\dim M=n+1$. Then we have a long exact sequence
$$\dots\leftarrow KO(\bigsqcup^k_{i=1}S^{n})\leftarrow\ KO(N)\leftarrow KO(M)\leftarrow KO(\bigsqcup^k_{i=1}S^{n+1})\leftarrow\dots$$
where $N$ is a CW complex of dimension $\leq n$ (namely the $n$-skeleton of $M$). Note that all the groups here are abelian.
The group $KO(\bigsqcup^k_{i=1}S^{n+1})\cong\bigoplus^k_{i=1}KO(S^{n+1})$ is known to be finitely generated. The group $KO(N)$ is finitely generated by induction. As $KO(M)$ is sandwiched between these two finitely generated groups in the exact sequence above, we see that $KO(M)$ is finitely generated (for instance, see here).
Any (compact) topological manifold $M$ is homotopy equivalent to a (compact) CW complex of finite dimension. In fact we can assume the dimension of this CW complex to be equal to the manifold dimension of $M$.