I always get the feeling that there is not much difference between the asp:panel
and asp:placeholder server controls in ASP.NET. The Panel control
is useful for grouping together other controls or HTML segments. The control
can be thought of as the server side equivalent of the <div> tag. The PlaceHolder control
can also be used for the same purpose, but there is no HTML output for the control
itself.
Now, let’s consider the following code:
<asp:Panel BackColor="#FF0000" Height="50" Width="200" ID="panel1" runat="server"> hello world </asp:Panel>
When, it’s run in the browser, the following HTML is generated
<div id="panel1" style="background-color:Red;height:50px;width:200px;"> hello world </div>
and visually:
But, when we look at the ASPX file in Dreamweaver MX, we don’t see
          the correct visual representation. Furthermore, we are unable to edit
          the HTML inside of the asp:panel tag. This can be a bit irritating
          for developers. To understand why this happens, we need to look at
          the way that Dreamweaver MX renders ASP.NET server controls. Under
          the hood, there is a Translation class that talks to the file MM.ASPNetDesignerMgr.dll.
          The return from the class is the actual HTML that would be generated
          from an ASPX page. This HTML is then shown in the design view in MX.
          In other words, the control is treated as a single unit. This kind
          of translation is very useful for the datagrid, datalist and other
          similar controls. But, for the asp:panel, it is effectively rendered
          useless.
Next, we can consider the code for an asp:placeholder:
<asp:PlaceHolder ID="holder1" runat="server"> hello world </asp:PlaceHolder>
When we view this code in the design view of MX, we are able to edit the HTML
  within the tag. This is because the tag is not sent to the ASP.NET designer
  and is rendered normally in MX. 
So, this outlines the relative merits of using the Panel and PlaceHolder server
  controls in ASP.NET. Personally, I always use the PlaceHolder. Mainly because
  I’m able to edit the HTML inside the tag. Maybe MM should allow developers
  to edit the HTML within the Panel too. I’m not sure to be honest. Maybe they
  have sound reasons for leaving it as it is.