В этом предложении при существительном Петербург имеется два приложения и одно согласованное определение, все вместе образующие ряд. Элементы этого ряда можно перечислить через запятую, а можно какую-то часть ряда отделить более сильным знаком тире, подчеркнув его самостоятельность:
...Петербурга, его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга — его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга, его родного города — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к родному городу);
...Петербурга, его родного города, — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к Петербургу).
Если поставить тире перед последним приложением, то сочетание согласованных определений нужно закрыть запятой:
...Петербурга, его родного города, любимого и жестокого, — прототипа всех будущих городов.
Дефис ставится в обоих случаях.
Дефис (орфографический знак, соединяющий части слова) здесь ставиться не может, а тире (пунктуационный знак, соединяющий разные слова) возможно (при логическом подчеркивании).
Да, написание через дефис правильно.
Дефис – это небуквенный орфографический знак, он используется в правилах слитного, дефисного и раздельного написания (контр-адмирал), как знак переноса, как знак сокращения (г-н, ж.-д.). Тире – пунктуационный знак, обозначающий различные синтаксические связи между словами («Рубин» – чемпион).