To have a self-contained answer, I'll summarize the proof following the handout pointed out in a comment. Let $B_X$ and $B_Y$ be the open unit balls in $X$ and $Y$, respectively.
Case 1: $\overline{T(B_X)}$ has empty interior. Then it's a nowhere dense closed set, which allows us to cover $T(X)$ with countably many such sets: $T(X)\subset \bigcup_{n=1}^\infty \overline{T(nB_X)}$. Thus $T(X)$ is meager (of the 1st category).
Case 2: $\overline{T(B_X)}$ has nonempty interior. Since it's convex and symmetric about $0$, it follows that $\overline{T(B_X)}\supset rB_Y$ for some $r>0$. We will prove that $T(B_X)$ itself contains a neighborhood of $0$ in $Y$, which will imply $T$ is onto.
Given $y\in B_Y$ with $\|y\|
The last part of the proof is what we do in the proof of the Open Mapping Theorem; and indeed, in the lecture notes the result about $TX$ is meager is incorporated into a stronger form of the OMT: if a bounded linear operator between Banach spaces has a nonmeager image, then it is an open map.