Fact 1 is self-explanatory.
Fact 2 says that the Eccles lawyer was not a runner, which implies that he/she won either the high jump or javelin. But since Hans already won the high jump, the lawyer must have won the javelin.
Fact 3 is self-explanatory.
Fact 4 says that the Acton doctor didn't win the 100m. We have so far
Hans- High Jump
Therefore, the doctor must have won the only event that's left: the 400m.
Fact 5 isn't really needed, thanks to fact 1.
Fact 6 says that Iolo, a Coalford engineer didn't win the 400m. From facts 1-4, this implies that he won the 100m.
Fact 7 says that Jan wasn't a lawyer. So far we have
This means that Jan must be the doctor.
Fact 8 says that Fred didn't come from Acton. So far we have
Therefore, Fred is from Eccles.
So we have
Fred - Eccles - Lawyer - Javelin
Greta - Buswick - Teacher - 1500m
Hans - Derby - Shopkeeper - High jump
Iolo - Coalford - Engineer - 100m
Jan - Acton - Doctor - 400m