The default shader is not designed for this. You will need either a custom shader or need to manually update the positions. This second option will have low performance, especially for large numbers of stars.
The standard shader is:
// in_p is the position from the vertex buffer
p_camera = modelview * in_p
out_p = projection * p_camera
// out_p goes to rasterizer as clip-space position
The shader you need is:
p_camera = modelview * in_p
// in_uv is in [0,1]x[0,1]
// in_size is a scalar
p_camera += vec4((in_uv.xy-vec2(0.5,0.5))*in_size, 0, 0);
p_out = projection * p_camera
Then you need to set up your vertex data so that in_p is the same position (the center) of your stars, in_uv encodes where on the face the vertex is (so if you are using two triangles to make a quad, you would have (0,0), (0,1), (1,0), and (1,1)), and in_size is the diameter of the star. You will have say four vertices in your buffer all with the same in_p and in_size, but the four different uv coords, and the index buffer will make two triangles out of them. This repetition is not an performance concern.1 This works because in camera space, adding to x or y will move the vertex orthogonally to the view direction.
Be careful with backface culling and accidentally inverting the order of your faces. If your modelview matrix is only a view matrix, i.e. only have rotations and translations, then sizes in camera space and world space match up. A final issue is this technique will have the textures always facing up from the cameras perspective, which will look weird if they are not radially symmetric.
1 If it is, you are doing something else very wrong, like trying to draw many more stars than pixels or killing your vertex pipeline. If you really feel you need to solve this, you will need geometry shaders.