Counter is always set to 1 and not incrementing
The problem is that you failed to grasp how HTTP is basically stateless.

static $counter = 0;


This value will be kept during one run. But one run is one page load. Obviously, it will be fresh and new at all page loads - ie all article reads.

If you need to keep value in one user session, see Session API, that's what it is for.

If you don't need any extra functionalities, just use $_SESSION['mymodule_counter']. If you want to make sure session is started, use drupal_session_start()