So as mentioned in that post, yes you can use VREF as IO. And yes, you can also us GCLK as IO.
And the advice in that xilinx forum post also applies here: "Read the Spartan 3 datasheet DS099, search for "VREF" and "DUAL". All the information and restrictions are in there."
If you are planning to use the spartan 3 in your project, I highly recommend reading that particular dataheet. It has info on pins like for this question. It has quite a bit of infomation on the block rams, etc.. You can download it here: