I don't have documentation on this, but from reading the text for both I interpret it as:
Number of rows read <-- number of rows that needed to be read from disk/memory
Actual Number of Rows for All Executions <-- the number of rows that are being passed to the next command
The reason why you would need to read all rows would be when doing a scan BUT you don't need all rows from the table. For example, lets say you have an INT IDENTITY column on a table with 72 rows. You have NO index on that column, so you need to do a SCAN if you are going to be using that in your WHERE clause. So, you do a SELECT from that table with a WHERE clause like "WHERE ID <= 18". Assuming no gaps, you would get 18 rows back which would match the Actual Number of Rows for All Executions value BUT since there is no index on that column, you are doing a Table Scan on it which would result in the Number of Rows Read of 72 since you need to read all of the rows in order to check if ID is less than or equal to 18.
To me, the above makes sense based on the wording of those metrics and is useful information. Does the above make sense to you?
The above is all just my opinion on what you should do.
As with all advice you find on a random internet forum - you shouldn't blindly follow it. Always test on a test server to see if there is negative side effects before making changes to live!
I recommend you NEVER run "random code" you found online on any system you care about UNLESS you understand and can verify the code OR you don't care if the code trashes your system.