Proposition 1.13 of these [notes][1] by Coste implies (if I've read it correctly) that any semialgebraic set $S$ is homeomorphic to a union $U$ of open simplices in some finite simplicial complex $K$.
Thus $S$ is an open subset of an ENR, hence is an ENR. Its singular cohomology therefore coincides with its Čech cohomology, which is finitely generated. Therefore its singular homology must be finitely generated.
Edit: The argument given above is incomplete, since a union of "open" simplices in a simplicial complex is not necessarily open (an easy mistake to make!). However it is easy to see that $S\subseteq\mathbb{R}^n$ is an ENR by other means (in particular, it is locally compact and locally contractible).
[1]: http://perso.univ-rennes1.fr/michel.coste/polyens/RASroot.pdf