We proceed in two steps: first show that we can construct such a subspace using a non-norm attaining functional, second construct such a functional for $l^\infty$.
Assume that $g\in X^*$ is a functional with $\|g\|_{X^*}=1$ such that for all $x$ with $\|x\|_{X}=1$ it holds $|g(x)|<1$. I.e., the supremum in the definition of the functional is not attained.
Define $Y:=\ker g$. Let $x$ with $\|x\|_X=1$ be given. Assume wlog $g(x)>0$. Then there is $z$ with $g(x)<g(z)<1$.
Define $y:=x - g(x)g(z)^{-1}z$. Then $g(y)=0$, thus $y\in Y$, and
$$
\|y-x\| = g(x)g(z)^{-1} \|z\|<1.
$$
This shows $d(x,Y)<1$ for all $x$ with $\|x\|_X=1$.
It remains to construct such a functional $g\in (l^\infty)^*$.
Let $\phi\in (l^\infty)^*$ be an extension of the limit functional. Let $(a_k)$ be a sequence of positive numbers such that $\sum_{k=1}^\infty a_k=1$.
Define
$$
g(x)=\sum_{k=1}^\infty a_kx_k - \phi(x_k).
$$
First let us show $\|g\|=2$. For given $n$ set
$$
x_k = \begin{cases} 1 & k\le n\\
-1 & k >n
\end{cases}
$$
Then
$$
g(x)=\left(\sum_{k=1}^n a_k - \sum_{k=n+1}^\infty a_k\right) +1 \to\left( \sum_{k=1}^\infty a_k\right)+1 = 2\quad \text{ for } n\to\infty.
$$
If $x$ is constant one, then $g(x)=0$. Let $x$ be of unit norm with $g(x)>0$, but $x_k<1$ for some $k$, then $g(x) < g(x + (1-x_k)e_k)$. This shows that $|g(x)|<\|g\|$ for all $x$ with $\|x\|_{l^\infty}=1$.
So we do not use James' theorem, but rather construct a not norm-attaining functional explicitly. The construction in James original paper uses Banach limits as well, there I got the inspiration from.