The following proof is based on Rudin's Principles, chapter 2, exercise 26. I wanted to confirm that the axiom of (countable) choice is used in the line in bold, and was curious to know whether this proof can be modified so that it isn't required, and if not, whether there is an entirely different proof which doesn't require choice.
Let $X$ be a metric space in which every infinite subset has a limit point. By previous exercises, we know that $X$ must have a countable base. So every open cover of $X$ has a countable subcover $\{ G_{n} \}$. Assume that $\{ G_{n} \}$ has no finite subcover. Construct a set $E$, containing one element from each set $F_n = (\bigcup_{i=1}^{n}G_i)^c$. Then $E$ is infinite, since every point in it is in some $G_m$, so won't be in $F_{m}$. But then $E$ must have a limit point $y$, which is in contradiction with the fact that $y$ must be in some $G_n$, which is open. Thus $\{ G_{n} \}$ must have a finite subcover.
Yes, choice is needed for this.
The idea behind a counterexample is the following. Say that a space $X$ is blocky if it has infinitely many connected components, each of which is compact and open. Note that - in ZF alone - no blocky space is compact (consider the cover consisting of connected components).
The point is that in the absence of choice blocky spaces can be quite odd. Say that a blocky space $X$ is scrambled iff for all $A\subseteq X$ infinite there is some connected component $Z\subseteq X$ such that $A\cap Z$ is infinite. Trivially there are no scrambled blocky spaces in ZFC, but in the absence of choice it turns out that they can occur (in fact, they don't have to be all that weird - we can have a scrambled blocky space each of whose connected components is just the unit circle).
The point is that any scrambled blocky space provides a counterexample to the equivalence in question. If $X$ is a scrambled blocky space and $A\subseteq X$ is infinite, let $Z\subseteq X$ be a connected component of $X$ with $A\cap Z$ infinite. Since $Z$ itself is compact, there is some $\lambda\in Z$ which is a limit point of $A\cap Z$ in the sense of $Z$. But then $\lambda$ is a limit point of $A$ in the sense of $X$.
Of course, I haven't justified the claim above that the existence of scrambled blocky spaces is consistent with ZF. This is necessarily difficult - consistency results over ZF are quite hard (when we want to violate choice we need to use fairly heavy-duty techniques, usually - and in this case - forcing and symmetric/HOD submodels). But hopefully the above gives something of a picture of what happens when the principle fails.