I'll follow @ccc's advice and answer my own question by explaining Friedman's argument but giving some more details. I've made it community wiki (for the usual reason: I then won't be seen to gain from answering my own question).

Notation: if $X$ is a set and $n\in\mathbb{Z}_{\geq1}$ then $X^{(n)}$ denotes the set of subsets of $X$ of size $n$.

We start with

*The infinite Ramsey Theorem*: If $X$ is countably infinite and we colour $X^{(n)}$ with $k\in\mathbb{Z}_{\geq1}$ colours (that is, we give a map $X^{(n)}\to\{1,2,\ldots,k\}$) then there's an infinite monochramatic subset of $X$ (that is, there's some infinite $Y\subseteq X$ such that the induced map $Y^{(n)}\to\{1,2,\ldots,k\}$ is constant).

The proof is short but clever, and is at wikipedia for example. The proof does the case $k=2$ by a clever induction on $n$ and then does the general case by induction on $k$. I'll omit the details.

Clearly this is a result with the same flavour as the thin set theorem, but as ccc points out, this isn't quite what we want because in the thin set theorem we have ordered $k$-tuples, not subsets of size $n$. So we need a minor modification to deal with this. Here's how it goes. Define an equivalence relation on $\mathbf{Z}^k$, called "being of the same order type", thus: say $a=(a_1,a_2,\ldots,a_k)$ and $b=(b_1,b_2,\ldots,b_k)$ are equivalent if for all $1\leq i,j\leq k$ we have $a_i<a_j$ iff $b_i<b_j$ (note that this implies $a_i=a_j$ iff $b_i=b_j$). Clearly there are only finitely many equivalence classes. Say there $p=p(k)$ equivalence classes. We call the equivalence classes "order types".

Now here's Friedman's proof of the thin set theorem. Given $f$ as in the theorem, define $H:\mathbf{Z}^k\to\{1,2,\ldots,p+1\}$ by $H(x)=f(x)$ if $1\leq f(x)\leq p$, and $H(x)=p+1$ otherwise. Now we apply the infinite Ramsey Theorem $p$ times! We first apply it to the colouring of $\mathbf{Z}^{(k)}$ given thus: given a subset of $\mathbf{Z}$ of size $k$, order the elements as $x_1<x_2<\ldots<x_k$. Now colour this set with colour $H((x_1,x_2,\ldots,x_k))$.
Applying Ramsey we get an infinite subset $A_1$ of $\mathbf{Z}$ which is monochromatic. Now we apply it to the colouring of $(A_1)^{(k)}$ given thus: given a subset of size $k$ write it as $x_2<x_1<x_3<x_4<\ldots<x_k$ and
colour the subset with the colour $H((x_1,x_2,\ldots,x_k))$. We get an infinite subset $A_2$ of $A_1$ which is monochromatic. We continue in this way, applying Ramsey to each order type. For example we might next do the order type $x_1=x_2<x_3<x_4<\ldots$ and we deal with this by colouring $k-1$-tuples of integers by ordering them and repeating the first element and then applying $H$.

The upshot is an infinite subset $A_p$ of the integers with the property that $H(a_1,a_2,\ldots,a_k)$ depends only on the order type of $(a_1,a_2,\ldots,a_k)$. But there are only $p$ order types, and $H$ takes $p+1$ values, so $H$ on $A^k$ is not surjective and hence $f$ isn't either.