Why can't you hijack someone's public key
Short answer: Because the public key is derived from the private key.

Recall that when we are working with elliptic curves, we rely on the elliptic curve discrete logarithm problem (ECDLP). That is that we assume that if we have:

$$
Q = [k]P
$$

given the points $P, Q$ on our elliptic curve, it is hard to compute the scalar $k$.

Bitcoin uses ECDSA over the Secpk1 curve. In ECDSA, we have the public generator point $G$.
Alice's private key $d_a$ is randomly selected, as a large random number. With this $d_a$, her public key $Q_a$ is computed as follows:

$$
Q_a = [d_a]G
$$

This closely mirrors the equation above, about the discrete logarithm. Now your question is whether Fred can just use Alice's key $Q_a$, and generate his own private key $d_f$. He will only be able to choose a private key for which holds that $Q_a = [d_f]G$, but for this he would have to solve the ECDLP. In the case of for the Secpk1, this is practically infeasible (unless the scheme is broken).