Is it possible to add unlimited values as a group of fields? Imagine I have a content type that asks you to list your friends.  The 2 fields are:

| first name | 

| last name  | 

Is there a way a user could add unlimited friends for both fields (i.e. first and last name) as a set?  Right now Drupal is not smart enough and only let's me add unlimited first names or unlimited last names.  In other words, they are not paired together.

If any of you have used Sharepoint, then you will know what I mean.  In Sharepoint you can easily hit the "add another" link and it would create a new set of first name and last name fields that stick together as a group.  You do not want to separate the first and last name fields.
For your use case, there is the Field Collection module. The description given in its project page is the following.

Provides a field-collection field, to which any number of fields can be attached.
A field collection is internally represented as an entity, which is embedded in the host entity. Thus, if desired field collections may be viewed and edited separately too.

The latest stable release for Drupal 7 is 7.x-1.2, released on December 26, 2020; it's not covered by the security advisory policy. The development snapshot for that release has been last updated on March 26, 2021.
For Drupal 8, the project maintainers suggest using a different module.

Use Paragraphs and Entity Reference Revisions instead of field collection for Drupal 8 projects.

Since one of those modules doesn't have a release for Drupal 7, that suggestion isn't for users who are running Drupal 7 sites.