The problem:
Each iteration of a python loop sends a cypher-query to Neo4j that returns values.
This takes a considerable amount of time and is a bottleneck, as the number of loop items is 50 or more.
Environment

windows server 2019,
Neo4j Server version: 3.5.9 (community),
python 3.6
Neo4j python driver 4.2.1

Question
Would one call to a custom stored procedure be faster than repeated client requests to Neo4j?
Details
The stored procedure would be passed cypher parameters for all 50 items, and need to return results for all 50.
Well, if you can refactor your code to make one call to a stored procedure, it means you can also refactor to make one Cypher query and handle the result application side.
Maybe a stored procedure will be faster since you can leverage the JVM multithreading.
However, there are some drawbacks to using stored procedures :

You need to redeploy and restart Neo4j when the code of the stored procedure changes
You need to maintain it and upgrade with new Neo4j versions
It implies you can write them in Java

I have rarely seen the usage of stored procedures for improving performance (it happens but it has some niche use cases).
As you stated, the bottleneck is your loop querying the db, I would try to fix that first.
Secondly, performance in Neo4j is generally handled by three major factors :

Your ability to model your graph well, in order to optimise for querying
Your ability to tune your Cypher queries
Your index configuration is correct

In 99.99% of the problems you will have during your life with Neo4j will be solved by those 3 points above.
Neo4j > User-defined stored procedures: Would a stored procedure be faster than many cypher queries called from python?