Is there a way to write a While loop or For Loop or something similar in the Expression window or do I just have to let it repeat the command?
Yes, you are correct that the Expression (113) command does not natively support WHILE or FOR operators - the RMC needs to complete the expression in a single loop and it is not possible to know how long these loops will take to execute. But you can achieve the same outcome in a User Program with the Link Type. For example, the Link Type can evaluate a condition or conditional statement every loop, and then jump out of the loop once the condition is satisfied. For a FOR loop, you could implement a counter in an Expression step, and evaluate that counter variable each loop time. These User Programs can be set up to run on unused tasks in the background while other User Programs are doing something else.