I'm summarising the discussion in GH from MO's answer as a separate answer for clarity.
The fact that the primes have (natural) density zero can be deduced from a (seemingly) more general statement:
Theorem Let $1 < n_1 < n_2 < \dots$ be a sequence of natural numbers that are pairwise coprime. Then this sequence has zero (natural) density.
Proof There are two cases, depending on whether the sum $\sum_{k=1}^\infty \frac{1}{n_k}$ diverges or not.
Case 1: $\sum_{k=1}^\infty \frac{1}{n_k} < \infty$. Then for any $\varepsilon>0$, the density of $n_k$ inside a dyadic block $[2^j,2^{j+1})$ must be less than $\varepsilon$ for all but finitely many $j$. From this one easily verifies that the $n_k$ have natural density zero.
Case 2: $\sum_{k=1}^\infty \frac{1}{n_k} = \infty$. Then $\prod_{k=1}^\infty (1-\frac{1}{n_k})=0$. Thus for any $\varepsilon > 0$, there exists a finite $K$ such that $\prod_{k=1}^K (1 - \frac{1}{n_k}) \leq \varepsilon$. On the other hand, by the Chinese remainder theorem and the pairwise coprimality hypothesis, the set of natural numbers coprime to all of $n_1,\dots,n_K$ has density at most $\prod_{k=1}^K (1 - \frac{1}{n_k}) \leq \varepsilon$. Since this set contains all but finitely many of the $n_j$ by hypothesis, the $n_j$ have zero natural density. $\Box$
Informally, the pairwise coprimality hypothesis produces a competition between the small values of $n_k$ and the large values of $n_k$; if there are too many small values then there can't be too many large values. In particular pairwise coprimality is incompatible with positive (upper) natural density. (If one tries to occupy any dyadic block $[2^j,2^{j+1})$ with $n_k$'s to density at least $\varepsilon$, this will thin out the set of possible candidates for (much) larger $n_k$ by a factor of approximately $1-\varepsilon$. So if enough dyadic blocks attain this density, the set of candidates will eventually have its density reduced to at most $\varepsilon$. So having a non-zero density in this sequence is in ultimately "self-defeating", and so one has no choice but to eventually concede the density to be zero.)
In the specific case that $n_k$ is the sequence of primes, one can skip Case 1 by supplying a separate proof of Euler's theorem $\sum_p \frac{1}{p} = \infty$ (or equivalently $\prod_p (1-\frac{1}{p}) = 0$). For instance one can use the Euler product identity $\prod_p (1-\frac{1}{p})^{-1} = \sum_n \frac{1}{n}$.
Remark This argument is completely ineffective as it does not provide any explicit decay rate on the density of the $n_k$ inside any fixed large interval $[1,x]$. However, effective bounds for this theorem can be obtained by other means. Indeed, by replacing each of the $n_k$ with an arbitrary prime factor we see that the number of $n_k$ in $[1,x]$ cannot exceed the number $\pi(x)$ of primes in $[1,x]$, and this bound is of course optimal.