> Add a counter pause/unpause button.
Set a Javascript variable which would be checked before invoking your countdown function. As soon as the 'Pause' button is clicked, set the flag variable, store the state of your counter variables and clear the timeout. As soon as the 'UnPause' button is clicked, just unset the flag, start the timeout again with the previous saved counter state.
> Need this timer to survive postbacks (I have another button on the form and on press it
> fire postback and reset a counter)
Save the value of the updated counter in your session variable and read it again when the page loads. As far as reading the updated counter values at the server is concerned, save the state of the counter variable in a hidden field and at the server do something along the lines of Request("updatedState").
> When counter reaches zero I have to do any server side command (for example,
> Label2.Text="Time is up" , where label2 is a server control)
This might be a better answered in the VB.NET forums since Javascript as such doesn't understand any 'server controls'.