If you could change your scanning code to either pull the column high, instead of low, then you don't need to do anything special to read this switch. Connect the column input to R2 and read the switch from the junction of R2 and the switch. You'd also want to enable the internal pull-up resistor on the column inputs, instead of the row inputs.
If that's not possible, then your circuit should work. Be sure you tri-state the column, rather than pulling high, otherwise you might reverse-bias the base-emitter junction too much and Q1 might not like it. You could also use a PNP for Q1, which will invert the logic (I think you want that anyway). In the PNP case you can also dispense with R2.
First, let's say we work with these two functions:
\$L(n)\$ is the maximum amount of LEDs that can be driven from \$\mathsf{n}\$ pins.
\$p(n)\$ is the minimum amount of pins needed to drive \$\mathsf{n}\$ LEDs.
1:1-method
This one is easy:
$$L(n)=n$$
$$p(n)=n$$
A diode matrix
At first, we need to determine the most efficient diode matrix. For example, you could divide 4 pins into two sets of 2, or one set of 1 and one of 3. Obviously, the amount of LEDs is given by \$\mathsf{length\cdot{}width}\$. We can say \$\mathsf{width=n-length}\$, so the amount of LEDs is: \$\mathsf{length\cdot{}(n-length)=-length^2+n\cdot{}length}\$. Given an \$\mathsf{n}\$, this is a parabola, which has a maximum when \$\mathsf{length=\frac{n}{2}}\$. You can also do this on gut feeling. So, the maximum amount of LEDs is reached when the two sets have an equal amount of pins, or differ only 1, in case of an odd number of pins. We can now say:
$$L(n)=\lfloor{}\frac{n}{2}\rfloor{}\cdot\lceil{}\frac{n}{2}\rceil{}$$
Also, we can now easily understand the function \$\mathsf{p(n)}\$:
$$p(n)=
\begin{cases}
1&\text{ for }n=1\\
\lceil{}\sqrt{n}\rceil&\text{ for }n\gt1
\end{cases}$$
I just included the cases for 1, as this is a special case. Normally, you can just use the second function.
Charlieplexing
In this method, we have two LEDs between every set of two pins. We can calculate the amount of sets of two pins with:
$$(n-1)+(n-2)+\dots+1 = \frac{n\cdot(n-1)}{2}=\frac{n^2-n}{2}$$
Now we can say that:
$$L(n)=2\cdot\frac{n^2-n}{2}=n^2-n$$
We saw that the amount of pairs of pins equals \$\mathsf{n\cdot(n-1)}\$. With some reverse thinking, this leads to:
$$p(n)=
\begin{cases}
1 &\text{ for } n=1\\
2\cdot\lfloor\sqrt{n}\rfloor-1 &\text{ for } n\gt1
\end{cases}$$
I just included the cases for 1, as this is a special case. Normally, you can just use the second function.
Other methods
I'm not aware of any other methods, as of Tuesday march 12, 2013.
Best Answer
I would do something like this:
simulate this circuit – Schematic created using CircuitLab
I use 7 of the outputs and 8 of the inputs to create a matrix of 56 crosspoints, and I put two switches at each crosspoint, for a total of 112 switches. The 8th output is used to control a set of pullup/pulldown resistors for the inputs.
Scan the array twice. The first time, set Out7 low, and pulse the other outputs high one at a time. Look for any inputs going high. This tells you whether the lower switch at each crosspoint is closed.
The second time, set Out7 high, and pulse the other outputs low one at a time. Look for any inputs going low. This tells you whether the upper switch at each crosspoint is closed.