Activities are basically a single table with different 'types' of activities. My closest analogy is a SharePoint list with multiple Content Types - if you have SharePoint background. You can create new 'activity' tables and they will all be included in the 'regarding' field but you can't modify the default tables that come with dataverse (common data model) to be 'activity' tables. Also once you define an activity table, you can't undo that definition.
There are also several pre-defined activities, so when you create a new activity table and then have an app that you will create activities from, you will see all pre-defined activities including your new ones.
Teams and users are part of the common data model and drive Dataverse security so you definitely can't change them to become activities. Take a look at any 'Owner' field, it is a selection between Users or Teams in a single lookup because that will determine who has access to that record. That along with the 'Regarding' & 'Customer' fields are the only fields that are polymorphic lookups in Dataverse by default.
Now if you want to create your own 'Regarding' field, you now have the ability to using the Dataverse API. It isn't part of the UI yet but you can create a new field that behaves exactly like a 'Regarding' field without having to deal with Activity tables or record Ownership. Luckily if you download the XrmToolBox there is a tool there that gives you an interface to create Polymorphic Lookups. You can assign as many tables to reference within a single lookup that way.
Polymorphic Lookups: https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/multitable-lookup?branch=pr-en-us-4448
XrmToolBox: https://www.xrmtoolbox.com/
XrmToolBox Plugin: https://www.xrmtoolbox.com/plugins/MscrmTools.PolymorphicLookupCreator/
Hope this helps!