Suppose that $(S-n)\cap S$ has upper density 0 for all $n\leq N$. Then the density of the set of integers $x$, such that $|[xN, (x+1)N]\cap S|\geq 2$ is also 0, hence the upper density of $S$ is $\leq \frac{1}{N}$. Taking $N\rightarrow\infty$ gives a positive answer to your question.