I have taken Trenitalia trains numerous times over the last few years. I didn't have a smart phone when I first visited Italy so used to use paper tickets, obviously. I was in Italy last month and used the Trenitalia app on my phone almost exclusively to buy tickets. (In a few cases, I arrived at a station last minute, too late to purchase on my phone, as the train was leaving in just a few minutes. There's a cut-off time for purchasing tickets on your phone before the train departs.) I found using the Trenitalia app on my phone extremely convenient - saved me an enormous amount of time and added spontaneity to my travels.
My first destination on this trip (flying into Venice) was Turin. I bought a Frecciarossa ticket from Venice Mestre leaving just over two hours after my plane was scheduled to arrive - bought it weeks in advance to get the cheap economy fare. (A risk in case the plane was late, but the flight was early and I arrived with more than hour to spare at Mestre.) I didn't pay for WiFi on the plane, but I don't even know if it had been available when the plane was about to land. Best I might have hoped for if I were buying a ticket last minute would be to buy it as soon as the plane touched down and then try to get cell service then. Maybe in Rome you'd have plenty of time taxiing on the runway before the plane arrived at the gate (can't use the phone, I believe, while waiting in the immigration area) to buy your ticket.
Yes, I did register with Trenitalia. Not a requirement - but otherwise, I would have had to enter my name and info every time - what a PITA! Registering made buying tickets much quicker and practical. I connected my Paypal account to the Trenitalia app so I could buy a train ticket for myself in my name with just a few taps. When I was visiting some city and figuring I was ready to catch a train in say 20 or 30 minutes, I'd just pull out the phone and buy a ticket and then start heading toward the station. (Pretty much all of my tickets, after the first Frecciarossa ticket, turned out to be regional tickets anyway, so no worry about selling out or high prices.) Not needing to enter my name each time saved an enormous amount of time.
FYI, if you go the Paypal route and have a credit card set in Paypal as your default payment method, as I did, note that Paypal defaults to DCC (Dynamic Currency Conversion) for credit cards for foreign transactions...but you can turn that off in Paypal (so if your credit card has no foreign transaction fees, you won't be charged any). I suppose you could just use your US credit card directly, though - I didn't try.
Yes, you need a Codice Fiscale (tax code) to register with Trenitalia. There is a way to generate one for an American. I think the tax code is just some bureaucratic thing that isn't really needed for a non-citizen, but you can't register with Trenitalia without one. I found this article linked in a Rick Steves post from a few years ago and just followed the instructions - worked fine:
http://www.italychronicles.com/how-to-create-a-codice-fiscale/