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