2) Practice some more.
Here are the things to practice:
(1) To compute $x^2$: use the identity $x^2=(x+a)(x-a)+a^2$, with $a$ chosen to make $x+a$ as round as possible. This is especially fast for numbers near to $50$ or $500$ or $5000$ and so on. I can do squares of numbers near $500$ in about 2 seconds this way. Example: $46^2=50*42+4^2$, further simplified if one simply remembers $50^2=2500$ and therefore that $50*42=2500-400$.
(2) In general, round up or down to the nearest multiple of $10$ and then correct: for example, compute $93*42=100*42-7*42$. This is especially useful if you don't need the exact value---then you get a good approximation very quickly. The one choice you have to make here is which of the two numbers to round, and you should do this to maximize the resulting simplification. In the example I chose, it's better to round $93$ up to $100$, since multiplying by $100$ is slightly easier than multiplying by $40$.
(3) As you begin doing mental arithmetic with larger numbers, you will realize that the primary obstacle is not speed but space: you will run into the problem that you cannot reliably store more than a few digits in your head at a time. To overcome this, you will need a mnemonic. One relatively painless way is described in Art Benjamin's book "Secrets of Mental Math: The Mathemagician's Guide to Lightning Calculation and Amazing Math Tricks": turn numbers into phrases, poems, stories or songs!