So, here's the basic idea: you make a view that acts like the one in your example.
The horizontal scroll view could be achieved more easily with a rotated table ( http://iosstuff.wordpress.com/2011/06/29/creating-pulse-style-scrolling-horizontally-scrolling-uitableview-as-a-subview-of-uitableviewcell/ )
And here's how I usually do it: after designing and making this view work just like I want to, I change its origin from the Interface Builder.
For example, I have a view with the frame (0, 0, 320, 200), a standard iphone view with a 200 pixels height, starting from the top of the visible view. I then change its origin to (0, -200, 320, 200)
Now the view is still there, but it's not visible the first time.
The next step would be to add a button, and when you press the button, the view becomes visible/invisible, or maybe a gesture detector, to make it show when you swipe ( How to detect Swipe Gesture in iPhone SDK? ).
Finally, you animate the view ( http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial ) so when you want it to become visible, its frame changes back to (0, 0, 320, 200), or again (0, -200, 320, 200) when you want to hide it.
Of course, it's not necessary to change the whole frame, you can also change the view's center if you find it easier.
That would be all! I hope this will help you