Mike's answer is very nice, but for fun, here is a third approach. It is developed along the same line as Mike's, but using more basic techniques.
Observe that if $W$ is a symmetric or skew-symmetric matrix and $W^2=0$, then $W=0$. This is because $\|Wx\|_2^2=x^TW^TWx=\pm x^TW^2x=0$ for all $x$ and hence $Wx\equiv 0$.
Now, from the condition $AA^T=A^2$, we obtain $AA^T=AA=A^TA^T$ and in turn
\begin{cases}
AA^TAA^T = AAAA = AA^TA^TA,\\
A^TAAA^T = A^TA^TA^TA^T = AAAA = AAA^TA = A^TA^TA^TA = A^TAA^TA.
\end{cases}
Hence $(AA^T-A^TA)^2 = 0$. Since $W_1=AA^T-A^TA$ is symmetric and $W_1^2=0$, we infer that $W_1=0$, i.e. $AA^T=A^TA$.
But then we get $(A-A^T)^2 = AA-AA^T-A^TA+A^TA^T=0$. Since $W_2=A-A^T$ is skew-symmetric and $W_2^2=0$, we conclude that $W_2=A-A^T=0$, i.e. $A$ is symmetric.
Edit: As some users have pointed out that the statement is trivial when $A$ is invertible, we will also develop a proof along this line. By the given conditions, $\ker A=\ker A^T$:
- $\ker A \subseteq \ker A^T$ because
$Ax=0 \Rightarrow \|A^Tx\|^2=x^TAA^Tx=x^TA(Ax)=0.$
- $\ker A^T \subseteq \ker A$ because
$$
A^Tx=0 \Rightarrow AAx=AA^Tx=0 \Rightarrow Ax\in\ker A\subseteq\ker A^T \Rightarrow \|Ax\|^2=x^T(A^T(Ax))=0.
$$
Therefore, by an orthonormal change of basis, we may assume that $A=\pmatrix{B&0\\ 0&0_{k\times k}}$, where $B$ is invertible, $BB^T=B^2$ and $k$ is the nullity of $A$. Hence $B^T=B^{-1}(BB^T)=B^{-1}(B^2)=B$ and $A$ is symmetric.