Keystone supports dynamic placeholders in both Web Forms and MVC.
WebForms
<%@ Register Assembly="Keystone.SBL" Namespace="Keystone.Web.UI.WebControls" TagPrefix="ks" %>
<ks:dynamickeyplaceholder runat="server" id="phThreeColumn1" key="threecolumn1"></ks:dynamickeyplaceholder>
MVC
@Html.Sitecore().DynamicPlaceholder("mvc.column2")