While length contraction does play a part in this scenario, it actually works to ensure that the observer on the train does not see the flashes at the same time.
It works like this:
As the train goes past the observer standing by the tracks, he measures its length as being length contracted. Thus he measures a shorter length for the train than the observer sitting in the train does. and it looks like this, with the length contracted train just fitting between the points where the lightning strikes (indicated by the red dots).
[URL]http://home.earthlink.net/~jparvey/sitebuildercontent/sitebuilderpictures/trainsimul1.gif[/URL]
Now, as I mentioned above, the train observer measures the train length as normal. However, he measures the train tracks as length contracted. Thus for him, the distance between the point of the tracks where the lightning strikes is shorter than the length o fthe train. This means that the ends of the train and the strike points cannot line up all at the same time. The front of the train reaches its strike point first and then the rear of the train reaches its.
So for the train observer, events happen like this:
[URL]http://home.earthlink.net/~jparvey/sitebuildercontent/sitebuilderpictures/trainsimul2.gif[/URL]
With the front strike happening first, and then the rear strike.
There is no way that length contraction can "correct" things so that both observers see the flash at the same time.