Protests have been held outside hospitals in a pay dispute involving cleaners, porters and security staff.
The GMB union staged demonstrations outside four London hospitals, saying contractor ISS paid as low as £7.88 an hour, higher than the national living wage of £7.50 but below the voluntary rate of £10.20 in the capital.
The union claimed cleaners were followed to the toilet by supervisors demanding to know where they were going and why they had stopped working, adding that staff were bullied and had their pay withheld.
GMB official Nadine Houghton said: "These stories from NHS workers are the kind of thing you'd expect in a Victorian workhouse.
"It's beyond belief people are being forced to live and work like this in our health service. We're protesting to tell ISS to treat their workers with dignity and respect."
ISS said in a statement: "We are disappointed that a local officer of GMB has arranged this protest as a campaign against ISS.
"The grounds on which the demonstration is being organised is flawed and not factually correct. ISS pays the same rate of pay as the NHS, we have no zero-hour contracts and the NHS terms and conditions apply to the majority of our employees in this sector.
"The recent employee survey returned scores in the upper quartile for engagement and empowerment, showing our employees clearly have a different view of ISS than the GMB, who have a very small level of membership, behind Unite and Unison, the largest union in our healthcare business."
The company said it will minimise any disruption to the hospitals and patients through using additional resources from other healthcare teams.