How can one extract an address balance at a specific height? Is it possible to view the balance of an address at a specific height, without using any external web api?

Could it perhaps be done using bx or the Bitcoin client API?
This is relatively hard to achieve, because if you wish to allow querying any address at any height you deal with a LOT of data. You probably would need serve database server (cluster).

I'm pretty sure, getting a balance at a specific height from a specific address is not possible over a existing app or API.

You could try built it yourself with bitcoin-core as basis.
Maybe have a look at the >1year old address index patch from Johnathan Corgan. But it would required additional to allow a API where you could define the height.

But caching every address at every possible height (Juli 29 2015: 367456, amount of addresses ~250k) is nearly impossible.