Using sorting and grouping, probably similar to what you did in Hyperion, you can mostly accomplish this in SSRS using expressions:
FIRST() will return the first row of your current scope of data
LAST() will return the last row of your current scope of data
PREVIOUS() will return the previous row of your current scope of data, or NULL if there are no more previous rows.
Of course, what's missing is something like NEXT(). For whatever reason, Microsoft didn't see fit to include a NEXT() option. Instead, you need to grow your own solution. I see a few common strategies used for this:
A LOOKUP (or LOOKUPSET/MULTILOOKUP) function against your report dataset, combined with FIRST or ROWNUMBER to get
Write some custom code to do the sorting/indexing for you, see here for one idea: http://sqlreportsq.blogspot.com/2012/03/can-we-get-next-row-value.html
Do whatever data maniuplation in you need to do via your SQL using LAG/LEAD