How to count the reads on index in MySQL
Metrics
It is possible to find the number of rows looked at in the tables for a single query.  These count rows of index or data, not counted separately, for your connection.  If no other queries are running, total counts are possible.
SHOW SESSION STATUS LIKE 'Handler%';

Here is a discussion of using that to help with optimization: http://mysql.rjweb.org/doc.php/index_cookbook_mysql#handler_counts
From
SHOW GLOBAL STATUS LIKE 'Innodb_%';

you can get certain global counts for disk accesses, etc. for all InnoDB statements from all connections.  (This is not precisely what you are asking for, but may be interesting.)
Another source is the system database performance_schema.  (In older MySQL versions, information_schema had some tables, but there are mostly moved to PS now.)
If you elaborate on the goals of your question, we might be able to help in more detail.
Optimizing that query
Start by using the modern JOIN syntax:
FROM lineitem AS l
JOIN part AS p  ON p.partkey = l.partkey

That was a common part of the ORs; this makes it so the Optimizer can do the JOIN more efficiently.
In case the Optimizer decides to start with part, have this
lineitem:  INDEX(partkey)  -- (but see below)

Now I see that l.shipinstruct = 'DELIVER IN PERSON' is common across the ORs, so pull it out.  Then this would probably be useful
lineitem:  INDEX(shipinstruct)  -- (but see below)

But, all of that probably still won't do as much Optimization as turning the OR into UNION ALL:
( SELECT ... Brand#52 ... )
UNION ALL
( SELECT ... Brand#11 ... )
UNION ALL
( SELECT ... Brand#51 ... )

Then we can build some even better indexes:
part:  INDEX(brand, container)
part:  INDEX(brand, size)
lineitem:  INDEX(shipinstruct, quantity)
lineitem:  INDEX(shipinstruct, shipmode)
lineitem:  INDEX(partkey, shipinstruct, quantity)
lineitem:  INDEX(partkey, shipinstruct, shipmode)

There are many ways the Optimizer might pick to run the query; I think these cover all the bases.