What are the circumstances where autovacuum can be disabled? I have a table where I am performing only inserts, never deletes/updates. I notice sometimes that autovacuum runs on this table, even though this is the case.

autovacuum: VACUUM ANALYZE public.twitter_shares (to prevent wraparound)  


It is taking a long time, and it is having an impact on the performance of my DB. Is it safe for me to just disable autovacuum for this table? Since I am not performing deletes/updates, I don't understand why autovacuum is even needed, and why postgres decides to run it.
(to prevent wraparound) 


is the key bit. PostgreSQL must do freeze vacuums where transaction IDs are set to XID_FROZEN to prevent transaction ID wrap-around, and as a result massive data corruption.

If you disable these or cancel them all the time your database will eventually go into emergency shutdown.

See the user manual on VACUUM.

You can do a manual VACUUM FREEZE during a quiet period to get this all over and done with in one go if you want.