I have not found a way that you set up once and that then works for every player. You can however do this, but it does require some additional steps for each player

You have to do these steps once, you do not have to do them again

First you can create a scoreboard objective and set it to the sidebar, these do not require command blocks:

/scoreboard objectives add catCount dummy "Cats Tamed"
/scoreboard objectives setdisplay sidebar catCount

Then you set up a repeating command block with the command

/scoreboard players set @a catCount 0

This is what you do for EVERY player:

Get the player ID, I have not found a good way to get it from within the game. You can tame a cat and go close to it and use this (the easier way, but it may give you the wrong ID if the wrong person has tamed the cat, or if there are multiple cats nearby):

/data get entity @e[type=cat,limit=1,distance=..5] OwnerUUID

You can also get it by navigating to C:\Users\<your name>\AppData\Roaming\.minecraft\saves\<the name of your world>\playerdata on your computer and copying the filename of your data (or whoever you may want to add).

Once you have it you place a chain command block where the repeating command block is pointing at (there will be arrows on it), directly next to it, while making sure the new command blocks points in the same direction.

To add more players simply make a longer chain with command blocks

Put this command into the chain command block:

/execute as @e[type=cat,nbt={OwnerUUID:<player id of the player you want to add>}] run scoreboard players add <player you want to add> catCount 1

A setup for 5 players may look like this:

enter image description here

I recommend to make the blue command block require redstone and use a lever and the green ones to be "always active", but you can also set all of them to "always active", in which case you do not need a lever.