Have a good look to the answer you link to. It specifies the language that is generated using two numbers $k,\ell$. These numbers guarantee that the two parts are different without ever knowing where the middle of the string exctly was. I will try to explain.
We have to find (or better, guess) a position in $x$ such that the same position in $y$ carries another letter. Then we can write $x = x_1 a x_2$ and $y=y_1 b y_2$, where $|x_1| = |y_1|$ and $|x_2| = |y_2|$, and $a$ and $b$ are different symbols. You see that $a$ and $b$ are at the same position and $|x| = |y|$.
Note that $x_1,x_2$ and $y_1,y_2$ can be arbitrary strings, only their lengths matter, to get $a$ and $b$ at the same position in both halves.
Let us denote an arbitrary string with $k$ symbols by $\langle k \rangle$, then the language of unequal halves can be written as all strings of the form $\langle k \rangle a \langle \ell \rangle \langle k \rangle b \langle \ell \rangle$ for $k,\ell \ge 0$. Written this way, the string cannot be generated by a CFG, nor accepted by a PDA. The final trick is to observe that we do not need to find the middle, just check the length of the string between $a$ and $b$.
So we look at the strings in another way, as $\langle k \rangle a \langle k \rangle \langle \ell \rangle b \langle \ell \rangle$, or $\langle k \rangle a \langle k+\ell \rangle b \langle \ell \rangle$.
This still specifies the set of all strings with unequal halves, but is seen to be context-free (as in the original answer).
It also shows how to accept by PDA: read arbitrary $k$ symbols, adding one to the pusdown each step, store the next letter and read the same number $k$ of symbols. Now the pushdown is empty, and we repeat with $\ell$ symbols.