I want to prove that if $ \lambda \in \mathbb{C} \land \lambda^2=Re(\lambda)$, then $ \lambda \in \mathbb{R} $. Is my proof correct?
Assume $ \lambda = a + bi $.
Suppose, to the contrary, that $ \lambda $ is a pure imaginary number. Therefore, $ a = 0 \land b \neq 0 \Rightarrow \lambda^2=(bi)^2=-b^2=Re(\lambda)=0 \Rightarrow b = 0$ - contradiction.
Suppose, to the contrary, that $ a, b \neq 0 $. Therefore $ \lambda^2 = (a+bi)(a+bi)=a^2+abi+abi-b^2=(a^2-b^2)+(ab)i $, and because $ ab\neq 0 $, therefore $ \lambda^2 \notin \mathbb{R} $, but $ Re(\lambda) \in \mathbb{R} $ - contradiction.
Therefore, we can conclude that $ b = 0 $, which means $ \lambda \in \mathbb{R} $.
Your proof works, but I'll give a couple of remarks.
Let's stick to your notation, $\lambda = a+bi$, where $a,b\in\mathbb R$.
First remark is your use of the word contrary. Since $\lambda\in\mathbb R$ if and only if $b=0$, when you say "suppose to the contrary", you should continue with: "i.e. $b\neq 0$". Different cases on $a$ are cases within your "supposed contrary", you don't suppose contrary twice.
The second remark is that you don't need to consider cases on $a$. If you suppose the contrary, i.e. $b\neq 0$, you can continue with $$(a^2-b^2) + 2abi = \lambda^2 = \operatorname{Re}\lambda = a$$ implies $ab = 0$ and since $b\neq 0$, it follows that $a= 0$. Then we have $a^2-b^2 = a$ and with $a = 0$ it follows $-b^2 = 0$, i.e. $b = 0$, which is a contradiction with the assumption that $b\neq 0$.
You can also prove it directly, starting immediately with $$(a^2-b^2) + 2abi = \lambda^2 = \operatorname{Re}\lambda = a$$ which implies \begin{align} a^2-b^2 &= a\\ ab &= 0 \end{align} Now, if $a = 0$, we get $-b^2 = 0$, i.e. $b = 0$ and if $a\neq 0$, we get $b = 0$ and therefore $a^2 = a$, i.e. $a(a-1) = 0$ or $a = 1$ (since in this case $a\neq 0$). This gives us that $\lambda = 0,1$ are the only solutions, which is even stronger than we needed to prove.