[proofplan]
Fix two noncrossing partitions $\pi,\sigma \in NC(n)$. Their meet is the usual common refinement whose blocks are the nonempty intersections of a block of $\pi$ with a block of $\sigma$; we verify that this partition is still noncrossing and is the greatest lower bound. The join is obtained by taking the meet, inside $NC(n)$, of all noncrossing common upper bounds of $\pi$ and $\sigma$. Finiteness guarantees this construction is legitimate, and the meet construction shows that the resulting partition is still a common upper bound and is below every other common upper bound.
[/proofplan]
[step:Construct the common refinement by intersecting blocks]
Let $\pi,\sigma \in NC(n)$ be fixed. Denote by $\operatorname{Bl}(\pi)$ and $\operatorname{Bl}(\sigma)$ the sets of blocks of $\pi$ and $\sigma$, respectively. Define a partition $\mu$ of $[n]$ by declaring its blocks to be exactly the nonempty sets
\begin{align*}
V \cap W
\end{align*}
where $V \in \operatorname{Bl}(\pi)$ and $W \in \operatorname{Bl}(\sigma)$.
This is a partition because every element $i \in [n]$ lies in a unique block $V_i$ of $\pi$ and a unique block $W_i$ of $\sigma$, hence lies in the nonempty set $V_i \cap W_i$; moreover two such intersections are either equal or disjoint, since blocks of a partition are pairwise disjoint.
[/step]
[step:Verify that the common refinement is the greatest lower bound among all partitions]
The partition $\mu$ refines $\pi$, because each block of $\mu$ has the form $V \cap W \subset V$ for some $V \in \operatorname{Bl}(\pi)$. Similarly, $\mu$ refines $\sigma$. Therefore $\mu \leq \pi$ and $\mu \leq \sigma$.
Now let $\lambda$ be any partition of $[n]$ such that $\lambda \leq \pi$ and $\lambda \leq \sigma$. Let $A \in \operatorname{Bl}(\lambda)$ be a block. Since $\lambda \leq \pi$, there exists a block $V \in \operatorname{Bl}(\pi)$ with $A \subset V$. Since $\lambda \leq \sigma$, there exists a block $W \in \operatorname{Bl}(\sigma)$ with $A \subset W$. Hence
\begin{align*}
A \subset V \cap W.
\end{align*}
The set $V \cap W$ is nonempty because it contains $A$, so it is a block of $\mu$. Thus every block of $\lambda$ is contained in a block of $\mu$, and therefore $\lambda \leq \mu$. Hence $\mu$ is the greatest lower bound of $\pi$ and $\sigma$ in the full partition poset on $[n]$.
[/step]
[step:Show that the common refinement is noncrossing]
We prove that $\mu \in NC(n)$. Suppose, toward a contradiction, that $\mu$ is crossing. Then there exist distinct blocks $A,B \in \operatorname{Bl}(\mu)$ and indices $a,b,c,d \in [n]$ such that
\begin{align*}
a < b < c < d
\end{align*}
with $a,c \in A$ and $b,d \in B$.
By the definition of $\mu$, choose blocks $V,V' \in \operatorname{Bl}(\pi)$ and $W,W' \in \operatorname{Bl}(\sigma)$ such that
\begin{align*}
A = V \cap W
\end{align*}
and
\begin{align*}
B = V' \cap W'.
\end{align*}
Since $A$ and $B$ are distinct blocks of $\mu$, either $V \neq V'$ or $W \neq W'$.
If $V \neq V'$, then $a,c \in V$ and $b,d \in V'$, so the blocks $V$ and $V'$ form a crossing in $\pi$, contradicting $\pi \in NC(n)$. If $V = V'$, then necessarily $W \neq W'$, and $a,c \in W$ while $b,d \in W'$, so the blocks $W$ and $W'$ form a crossing in $\sigma$, contradicting $\sigma \in NC(n)$. Hence $\mu$ is noncrossing.
[guided]
We need to check that intersecting blocks does not accidentally create a new crossing. Assume the opposite, so that two distinct blocks $A$ and $B$ of $\mu$ cross. By the definition of a crossing, there are indices $a,b,c,d \in [n]$ satisfying
\begin{align*}
a < b < c < d
\end{align*}
with $a,c$ in one block and $b,d$ in the other. Thus $a,c \in A$ and $b,d \in B$.
Because every block of $\mu$ is an intersection of one block of $\pi$ and one block of $\sigma$, we may write
\begin{align*}
A = V \cap W
\end{align*}
for blocks $V \in \operatorname{Bl}(\pi)$ and $W \in \operatorname{Bl}(\sigma)$, and
\begin{align*}
B = V' \cap W'
\end{align*}
for blocks $V' \in \operatorname{Bl}(\pi)$ and $W' \in \operatorname{Bl}(\sigma)$.
The key point is that a crossing of intersection blocks must already be visible in at least one of the original partitions. Since $A$ and $B$ are distinct blocks of $\mu$, it cannot happen that both $V = V'$ and $W = W'$. Therefore either $V \neq V'$ or $W \neq W'$.
If $V \neq V'$, then the elements $a,c$ lie in $V$ and the elements $b,d$ lie in $V'$. Together with $a < b < c < d$, this is exactly a crossing of the two distinct blocks $V$ and $V'$ in $\pi$, contradicting that $\pi$ is noncrossing.
If $V = V'$, then the distinction between $A$ and $B$ must come from $\sigma$, so $W \neq W'$. In this case $a,c \in W$ and $b,d \in W'$, again with $a < b < c < d$. This is a crossing of the two distinct blocks $W$ and $W'$ in $\sigma$, contradicting that $\sigma$ is noncrossing.
Both alternatives contradict the hypotheses. Hence no crossing exists in $\mu$, and $\mu \in NC(n)$.
[/guided]
[/step]
[step:Obtain the meet in $NC(n)$]
The preceding steps show that $\mu \in NC(n)$, that $\mu \leq \pi$ and $\mu \leq \sigma$, and that every partition below both $\pi$ and $\sigma$ is below $\mu$. In particular, every noncrossing partition below both $\pi$ and $\sigma$ is below $\mu$. Therefore $\mu$ is the meet $\pi \wedge \sigma$ in $NC(n)$.
[/step]
[step:Form the set of noncrossing common upper bounds]
Let $\mathcal{U}$ be the set of all $\tau \in NC(n)$ such that $\pi \leq \tau$ and $\sigma \leq \tau$. The set $\mathcal{U}$ is nonempty because the one-block partition $1_n := \{[n]\}$ is noncrossing and satisfies $\pi \leq 1_n$ and $\sigma \leq 1_n$.
The set $\mathcal{U}$ is finite because it is a subset of the finite set of all partitions of $[n]$. Enumerate it as
\begin{align*}
\mathcal{U} = \{\tau_1,\dots,\tau_m\}
\end{align*}
for some $m \in \mathbb{N}$.
[/step]
[step:Take the iterated meet of all noncrossing common upper bounds]
Define partitions $\rho_1,\dots,\rho_m \in NC(n)$ recursively by setting $\rho_1 := \tau_1$ and, for $2 \leq k \leq m$,
\begin{align*}
\rho_k := \rho_{k-1} \wedge \tau_k,
\end{align*}
where the meet is the meet in $NC(n)$ constructed above.
We prove by induction on $k$ that $\pi \leq \rho_k$ and $\sigma \leq \rho_k$ for every $1 \leq k \leq m$. For $k=1$, this holds because $\tau_1 \in \mathcal{U}$. Suppose it holds for $k-1$. Since $\tau_k \in \mathcal{U}$, we also have $\pi \leq \tau_k$ and $\sigma \leq \tau_k$. The partition $\rho_k = \rho_{k-1} \wedge \tau_k$ is the greatest common lower bound of $\rho_{k-1}$ and $\tau_k$. Since $\pi$ is a common lower bound of $\rho_{k-1}$ and $\tau_k$, we get $\pi \leq \rho_k$. Likewise, $\sigma$ is a common lower bound of $\rho_{k-1}$ and $\tau_k$, because the induction hypothesis gives $\sigma \leq \rho_{k-1}$ and the definition of $\mathcal{U}$ gives $\sigma \leq \tau_k$. Therefore $\sigma \leq \rho_k$. Thus $\rho_m \in \mathcal{U}$.
[guided]
The join should be the smallest noncrossing partition that is coarser than both $\pi$ and $\sigma$. Instead of trying to describe its blocks directly, we collect all possible noncrossing common upper bounds and meet them.
Set $\rho_1 := \tau_1$. For each $k$ with $2 \leq k \leq m$, define
\begin{align*}
\rho_k := \rho_{k-1} \wedge \tau_k.
\end{align*}
This expression is legitimate because we have already proved that any two elements of $NC(n)$ have a meet in $NC(n)$.
The point that needs verification is that repeatedly taking meets of upper bounds does not drop below $\pi$ or $\sigma$. We prove this by induction. For $k=1$, $\rho_1 = \tau_1$, and $\tau_1 \in \mathcal{U}$, so $\pi \leq \rho_1$ and $\sigma \leq \rho_1$.
Assume that $\pi \leq \rho_{k-1}$ and $\sigma \leq \rho_{k-1}$. Since $\tau_k \in \mathcal{U}$, we also have
\begin{align*}
\pi \leq \tau_k
\end{align*}
and
\begin{align*}
\sigma \leq \tau_k.
\end{align*}
Thus $\pi$ is a common lower bound of $\rho_{k-1}$ and $\tau_k$ in the refinement order. Because $\rho_k$ is the greatest common lower bound of those two partitions, every common lower bound is below $\rho_k$, so
\begin{align*}
\pi \leq \rho_k.
\end{align*}
The same argument, replacing $\pi$ by $\sigma$, gives
\begin{align*}
\sigma \leq \rho_k.
\end{align*}
Therefore the iterated meet $\rho_m$ is still a noncrossing common upper bound of $\pi$ and $\sigma$, meaning $\rho_m \in \mathcal{U}$.
[/guided]
[/step]
[step:Identify the iterated meet as the least upper bound]
By construction, $\rho_m$ is obtained by successively taking meets with every element of $\mathcal{U}$. Hence $\rho_m \leq \tau_k$ for every $1 \leq k \leq m$. Since $\mathcal{U} = \{\tau_1,\dots,\tau_m\}$, this means that $\rho_m$ is below every noncrossing common upper bound of $\pi$ and $\sigma$.
The previous step showed that $\rho_m$ itself is a noncrossing common upper bound of $\pi$ and $\sigma$. Therefore $\rho_m$ is the least upper bound of $\pi$ and $\sigma$ in $NC(n)$, so $\rho_m = \pi \vee \sigma$.
[/step]
[step:Conclude that every pair has a meet and a join]
For arbitrary $\pi,\sigma \in NC(n)$, we have constructed a meet $\pi \wedge \sigma$ and a join $\pi \vee \sigma$ in the refinement order. Hence every pair of elements of $NC(n)$ has both a greatest lower bound and a least upper bound. Therefore $(NC(n),\leq)$ is a lattice.
[/step]