1. Build the custom fields for the different options you want to make available, as Kim suggested. One thing to keep in mind here is that boolean fields must always either be true or false, so any time you use these fields, if someone unchecks something it doesn't necessarily mean "don't subscribe me", it also means "unsubscribe me".
2. Build a form and landing page as Kim suggested. Each of the options on that Marketo page is likely its own preference field.
3. Save settings is probably the button associated with the visible form here, and the other two (Unsusbcribe for 90 days and Unsubscribe from all) are separate forms with just hidden fields so that the correct actions happen in the background. Then there are smart campaigns in the background if someone fills out the Unsubscribe from all or for 90 days forms, and preferences would be updated. You might have noticed that if you select Unsubscribe for 90 days, they send you this follow up email.
4. This isn't really something that someone could provide you a step by step guide to create -- what you need to do is map out exactly what you want your campaign to do, the emails you want it to send and the settings you want it to change, and then you can begin to build out all of the flows and rules associated behind the scenes. A complex preferences center is much more than just a single landing page build.
Josh Hill also has a similar guide here