[proofplan]
Use an orthonormal basis of the finite-dimensional subspace. The displayed formula gives the candidate projection. Orthogonality gives uniqueness, and the Pythagorean identity gives the minimizing property.
[/proofplan]
[step:Construct the candidate]
Since $M$ is finite-dimensional, choose an orthonormal basis $e_1,\ldots,e_m$ of $M$. Define
\begin{align*}
p=\sum_{i=1}^m (x,e_i)_V e_i.
\end{align*}
Then $p\in M$. For each $j$,
\begin{align*}
(x-p,e_j)_V
&=(x,e_j)_V-\sum_{i=1}^m (x,e_i)_V(e_i,e_j)_V \\
&=(x,e_j)_V-(x,e_j)_V=0.
\end{align*}
By linearity, $(x-p,m)_V=0$ for every $m\in M$, so $x-p\in M^\perp$.
[/step]
[step:Prove uniqueness]
Suppose $q\in M$ and $x-q\in M^\perp$. Then $p-q\in M$. Also
\begin{align*}
p-q=(x-q)-(x-p),
\end{align*}
where both $x-q$ and $x-p$ are orthogonal to $M$. Hence $p-q\in M^\perp$. Thus $p-q\in M\cap M^\perp$, so
\begin{align*}
\|p-q\|_V^2=(p-q,p-q)_V=0.
\end{align*}
Therefore $p=q$.
[/step]
[step:Prove minimality]
For any $m\in M$, write
\begin{align*}
x-m=(x-p)+(p-m).
\end{align*}
The first term is in $M^\perp$ and the second is in $M$, so the two terms are orthogonal. Hence
\begin{align*}
\|x-m\|_V^2=\|x-p\|_V^2+\|p-m\|_V^2\ge \|x-p\|_V^2.
\end{align*}
Taking square roots and then the infimum over $m\in M$ gives
\begin{align*}
\inf_{m\in M}\|x-m\|_V\ge \|x-p\|_V.
\end{align*}
The reverse inequality follows by taking $m=p$, so equality holds.
[/step]