Linear codes : why has the parity check matrix dimensions $(n-k)*k$?
You can have as many rows in $H$ as you like, but they will be linearly dependent after you reach $n-k$ independent rows.  You can apply the rank-nullity theorem.  If you like, think of the rank of $H$ as the number of pivots you get, when you row reduce.  It is the same number you get when you column reduce.  Now for $H$ is a $s\times n$-matrix with kernel of dimension $k$.  That means by the rank-nullity theorem that $\mathrm{rank}~H+k=n$.  So $\mathrm{rank}~H=n-k$ but rank is just the number of pivots (either from row or column reducing).  Said another way, $s\geq n-k$ and if $s&gt;n-k$ then after row reducing you get just $n-k$ nonzero rows.  So the most compact $H$ is $(n-k)\times k$.

Usually one thinks of generator and parity check matrices as having been row/column reduced with 0 rows serving no purpose so omitted.  That forces your dimensions. But yes in principal you could repeat yourself, it just wouldn't help or be what anyone expects.  But no, you can't choose just 2 that will make for a larger kernel in general.