Considering that you are talking about a decent amount effort to write code to get this to work safely and reliably with viewstate, you should consider putting that time and effort into just creating the server-side data store instead.
You already have a clearly defined need for one, and the effort to implement it is probably the same or less than the custom viewstate mechanism that is your alternative. The difference is that the persistent store might have value elsewhere in the app, or later on during development of other features... while the viewstate mechanism doesn't add value outside the immediate scope of the one requirement.
It would be rather trivial to drop a simple MS Access data file on the server, or you can even just drop in an XML or text files and write your data to those. It isn't much more effort beyond that to go to the light-weight relational stores like SQL Express, VistaDB, or even MySQL