Here is a minor variation of the proof.
We show that there is a subset $Z$ of $\mathbb R^2$ which intersects each line exactly twice.
We define the ordinals in such a way that each ordinal $a$ is the set of those ordinals $< a$. For any set $S$ we write $|S|$ for the least ordinal equipotent to $S$, and call it the cardinality of $S$. Let $c$ (for continuum) be the cardinality of $\mathbb R$. For any subset $S$ of $\mathbb R^2$ we denote by $\langle S\rangle$ the set of lines generated by $S$ (a line being generated by $S$ if it has at least two points in common with $S$). Let $d\mapsto L_d$ be a bijection from $c$ onto the set of lines in $\mathbb R^2$.
For each $d\in c$ we define $Z_d\subset\mathbb R^2$, $f(d)\in c$, and $z_d\in\mathbb R^2$, as follows. Let $z_0$ be any point of $L_0$, put $f(0)=0$, and let $Z_0$ be the empty set. Now assume $0< d< c$, and $f(e), z_e$ already defined for $e < d$. Put $Z_d:=$ {$z_e\ |\ e< d$}. As $|\langle Z_d\rangle|< c$ (because $|Z_d|< c$), there is a least $f(d)$ in $c$ such that $L_{f(d)}\notin\langle Z_d\rangle$. Let $z_d$ be any point of the set
$$L_{f(d)}-(Z_d\cup(\cup\langle Z_d\rangle)),$$
which is easily seen to be nonempty.
Let $Z$ be the union of the $Z_d$ and $L$ any line in $\mathbb R^2$. We claim $|L \cap Z|=2$, that is, $Z$ is the sought-for subset of $\mathbb R^2$. To prove $|L\cap Z|\le2\ (*)$ we assume by contradiction that there are $g< h< i$ in $c$ such that $z_g,z_h,z_i\in L\cap Z$. We have $z_g,z_h\in Z_i$ by definition of $Z_i$, and thus $L\in\langle Z_i\rangle$, contradicting the definition of $z_i$. To prove $|L\cap Z|\ge2$ we assume by contradiction $|L\cap Z|< 2$. Put $L=L_d$ and let $g$ be in $c$. The inequality $|L_d\cap Z_g|<2$ implies $L_d\notin\langle Z_g\rangle$, and thus $f(g)\le d$ by minimality of $f(g)$. This shows that $Z$ is contained into the union of the $L_e$ such that $e\le d$. As $|L_e\cap Z|\le2$ by $(*)$, we get $|Z|\le2|d|+2< c$, contradicting the obvious equality $|Z|=c$.
A pdf version is available here (Wayback Machine).