The continuous Functional Calculus will give you want you want, under your assumptions. If $\lambda \ne 0$ is a point of the spectrum, you can construct a continuous function $F_{\epsilon}$ that is $1$ at $\lambda$ and is $0$ on the remaining part of the spectrum. Then $P_{\lambda}=F_{\epsilon}(T)$ is selfadjoint and $P_{\lambda}^2=P_{\lambda}$. Because $(z-\lambda)F_{\epsilon}(z)$ is identically $0$ on the spectrum, then $TP_{\lambda}=\lambda P_{\lambda}$. You end up with $P_{\lambda}$ being the orthogonal projection onto $\mathcal{N}(T-\lambda I)$, a space which you have assumed to be finite-dimensional.
Let $\epsilon > 0$. The functional calculus can be used to construct a finite rank operator $T_{\epsilon}$ such that $\|T-T_{\epsilon}\| < \epsilon$ as follows. First, there exists $r \in (0,\epsilon)$ such that $\sigma(T)\cap\{ z : |z|=r \}=\emptyset$; this follows from your assumption that there is no finite non-zero point of accumulation of the spectrum. There are at most a finite number of points in $\sigma(T)\cap\{\lambda : |\lambda| > r \}$. Therefore, there is a continuous function $F_{\epsilon}$ on $\mathbb{C}$ such that
$$
|F_{\epsilon}(z)| \le 1 \mbox{ for all $z\in\mathbb{C}$, and } F_{\epsilon}(z)= \left\{\begin{array}{ll}
1, & |z| \le r \\
0, & |z| > r, z\in \sigma(T).
\end{array} \right.
$$
Let $G_{\epsilon}(z)=1-F_{\epsilon}(z)$. Then $I=F_{\epsilon}(T)+G_{\epsilon}(T)$. Both $F_{\epsilon}(T)$ and $G_{\epsilon}(T)$ are projections because they're either $0$ or $1$ at every point of the spectrum, which makes them idempotent and selfadjoint. You can further decompose $G_{\epsilon}(T)$ into functions that are $0$ on every one of the finite number of points in $\sigma(T)\cap\{\lambda : |\lambda| > r \}$, except for one point where the function is $1$; that gives
$$
G_{\epsilon}(T) = \sum_{\lambda\in\sigma(T),\;|\lambda| > r}P_{\lambda}
$$
where $P_{\lambda}$ is the orthogonal projection onto $\mathcal{N}(T-\lambda I)$. Therefore,
$$
T = TF_{\epsilon}(T)+\sum_{\lambda\in\sigma(T),\;|\lambda| > r}\lambda P_{\lambda},
$$
and
$$
\|TF_{\epsilon}(T)\|=\sup_{z\in\sigma(T)}|zF_{\epsilon}(z)| \le r < \epsilon.
$$
Hence, $T$ is a norm limit of finite-rank operators $\sum_{\lambda\in\sigma(T),\;|\lambda| > r}\lambda P_{\lambda}$.