[proofplan]
We prove the standard block-stabiliser correspondence at the chosen point $x$. A block $B$ containing $x$ determines its setwise stabiliser $H$, and the block condition forces $B=H \cdot x$ with $G_x \le H \le G$. Conversely, every subgroup $H$ with $G_x \le H \le G$ gives a block $H \cdot x$. Under this correspondence, singleton and total blocks correspond exactly to $G_x$ and $G$, so the absence of blocks other than singletons and $X$ is equivalent to the absence of proper intermediate subgroups.
[/proofplan]
[step:Show that the point stabiliser is a proper subgroup]
Since the action is transitive and $|X|>1$, choose $y \in X$ with $y \neq x$. By transitivity, there exists $g \in G$ such that $g \cdot x = y$. This element $g$ does not lie in $G_x$, because $g \cdot x \neq x$. Hence $G_x \neq G$.
The set $G_x$ is a subgroup of $G$: the identity element $e \in G$ satisfies $e \cdot x=x$; if $a,b \in G_x$, then $(ab)\cdot x = a \cdot (b \cdot x)=a \cdot x=x$; and if $a \in G_x$, then applying $a^{-1}$ to $a \cdot x=x$ gives $a^{-1}\cdot x=x$. Therefore $G_x$ is a proper subgroup of $G$.
[/step]
[step:Send a block containing $x$ to an intermediate subgroup]
Let $B \subset X$ be a block with $x \in B$. Define the setwise stabiliser of $B$ by
\begin{align*}
H_B := \{g \in G : g \cdot B = B\}.
\end{align*}
This is a subgroup of $G$: the identity fixes $B$, products of elements preserving $B$ preserve $B$, and if $g \cdot B=B$, then applying $g^{-1}$ gives $g^{-1}\cdot B=B$.
Because every element of $G_x$ fixes $x$ and $x \in B$, we first show $G_x \le H_B$. Let $a \in G_x$. Then $x \in (a \cdot B) \cap B$, since $a \cdot x=x$. As $B$ is a block, the nonempty intersection $(a \cdot B) \cap B$ forces $a \cdot B=B$. Thus $a \in H_B$.
We next prove
\begin{align*}
B = H_B \cdot x := \{h \cdot x : h \in H_B\}.
\end{align*}
If $h \in H_B$, then $h \cdot x \in h \cdot B=B$, so $H_B \cdot x \subset B$. Conversely, let $z \in B$. By transitivity, choose $g \in G$ such that $g \cdot x=z$. Since $z \in (g \cdot B)\cap B$, the block condition gives $g \cdot B=B$, so $g \in H_B$. Hence $z=g \cdot x \in H_B \cdot x$. Therefore $B=H_B \cdot x$.
[guided]
The purpose of this step is to turn a geometric-looking object, a block in $X$, into an algebraic object, a subgroup of $G$. Let $B \subset X$ be a block containing $x$, and define
\begin{align*}
H_B := \{g \in G : g \cdot B = B\}.
\end{align*}
This is the subgroup of elements that preserve $B$ as a set. It is a subgroup because $e \cdot B=B$, because if $g \cdot B=B$ and $h \cdot B=B$, then $(gh)\cdot B=g\cdot(h\cdot B)=g\cdot B=B$, and because $g\cdot B=B$ implies $g^{-1}\cdot B=B$ after applying $g^{-1}$ to both sides.
We claim first that $G_x \le H_B$. Take $a \in G_x$. Since $x \in B$ and $a \cdot x=x$, the point $x$ lies in both $B$ and $a \cdot B$. Thus
\begin{align*}
(a \cdot B)\cap B \neq \varnothing.
\end{align*}
The defining property of a block says that for each group element, the translate of $B$ either equals $B$ or is disjoint from $B$. Since the intersection is not empty, the disjoint alternative is impossible, so $a \cdot B=B$. Hence $a \in H_B$.
Now we show that the block is exactly the orbit of $x$ under this subgroup:
\begin{align*}
B = H_B \cdot x.
\end{align*}
The inclusion $H_B \cdot x \subset B$ follows because each $h \in H_B$ preserves $B$ and $x \in B$, so $h \cdot x \in h \cdot B=B$.
For the reverse inclusion, take $z \in B$. Since the original $G$-action is transitive, there exists $g \in G$ with $g \cdot x=z$. Then $z \in g \cdot B$ because $x \in B$, and also $z \in B$ by choice. Therefore
\begin{align*}
(g \cdot B)\cap B \neq \varnothing.
\end{align*}
Again the block condition forces $g \cdot B=B$, so $g \in H_B$. Hence $z=g \cdot x \in H_B \cdot x$. This proves $B=H_B \cdot x$.
[/guided]
[/step]
[step:Send an intermediate subgroup to a block containing $x$]
Let $H$ be a subgroup of $G$ such that $G_x \le H \le G$. Define
\begin{align*}
B_H := H \cdot x = \{h \cdot x : h \in H\}.
\end{align*}
Then $B_H$ is nonempty because $x=e\cdot x \in B_H$.
We prove that $B_H$ is a block. Let $g \in G$. Suppose $(g \cdot B_H)\cap B_H \neq \varnothing$. Then there exist $h_1,h_2 \in H$ such that
\begin{align*}
g h_1 \cdot x = h_2 \cdot x.
\end{align*}
Applying $h_2^{-1}$ to both sides gives
\begin{align*}
h_2^{-1}g h_1 \cdot x = x.
\end{align*}
Thus $h_2^{-1}g h_1 \in G_x \le H$. Since $h_1,h_2 \in H$ and $H$ is a subgroup, it follows that $g \in H$. Therefore
\begin{align*}
g \cdot B_H = g \cdot (H \cdot x)=H \cdot x=B_H.
\end{align*}
So for every $g \in G$, either $(g \cdot B_H)\cap B_H=\varnothing$ or $g \cdot B_H=B_H$. Hence $B_H$ is a block.
[/step]
[step:Identify the endpoint blocks with the endpoint subgroups]
For any subgroup $H$ with $G_x \le H \le G$, the block $B_H=H\cdot x$ is the singleton $\{x\}$ if and only if $H=G_x$. Indeed, $H\cdot x=\{x\}$ means every $h \in H$ fixes $x$, so $H \le G_x$; together with $G_x \le H$, this gives $H=G_x$. The converse is immediate from the definition of $G_x$.
Also, $B_H=X$ if and only if $H=G$. The implication $H=G \implies B_H=X$ is exactly transitivity of the $G$-action. Conversely, if $H\cdot x=X$, then for every $g \in G$ the point $g\cdot x$ lies in $H\cdot x$, so there exists $h \in H$ such that $g\cdot x=h\cdot x$. Hence $h^{-1}g \in G_x \le H$, and therefore $g \in H$. Thus $G \le H$, so $H=G$.
[/step]
[step:Conclude primitivity is equivalent to maximality of the stabiliser]
Assume first that the action is primitive. Let $H$ be a subgroup satisfying
\begin{align*}
G_x \le H \le G.
\end{align*}
By the previous construction, $B_H=H\cdot x$ is a block. Since the action is primitive, $B_H$ is either $\{x\}$ or $X$. By the endpoint identifications, this means $H=G_x$ or $H=G$. Therefore there is no subgroup strictly between $G_x$ and $G$. Since $G_x$ is proper, $G_x$ is a maximal proper subgroup of $G$.
Conversely, assume that $G_x$ is a maximal proper subgroup of $G$. Let $B \subset X$ be a block. Choose $z \in B$, which is possible because blocks are nonempty. By transitivity, choose $g \in G$ such that $g \cdot z=x$. Then $g \cdot B$ is also a block, and it contains $x$. Applying the block-to-subgroup construction to $g \cdot B$, its setwise stabiliser $H_{gB}$ satisfies
\begin{align*}
G_x \le H_{gB} \le G.
\end{align*}
By maximality, $H_{gB}=G_x$ or $H_{gB}=G$. Hence $g \cdot B$ is either $\{x\}$ or $X$. Applying $g^{-1}$, the original block $B$ is either the singleton $\{g^{-1}\cdot x\}$ or $X$. Thus every block is either a singleton or all of $X$, so the action is primitive.
[/step]