Serve Anonymous Pages when users are logged in for some pages so essentially I have a Drupal website with great performance for anonymous users and terrible performance for logged in users.

What I am looking for is a way to serve some pages that logged in users access as if they were an anonymous user.

In custom development this would be done using a:

cache-control:public


header for varnish, but obviously when viewing that page anything such as the users profile information and the login status must not be shown so its not cached in varnish.

I was hoping there would be a config change or module that could perform this without having to write a custom module,

any ideas would be greatly appreciated
You may implement ESI block caching. 

Have a look at ESI module  and varnish basic tutorial. You would be able then to cache whole pages except the blocks with session data.

Additionally, @Kevin comment points a complementary way: using Redis or Memcache will substantially speed the pages when logged, by caching data and objects in server memory to reduce the number of times the data source must be read.