You can use the ChromeType : none to remove most of the tables but if you want to go further, you'll need one or more control adapter (custom development) that will take care of removing most of the tables generated by the webpart zones and the webparts
For the adapter, you can use the ones from the Accessibility Kit (AKS) or the one (also based on it) adapted by David Schneider
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.IO;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
/// WebPartZone Adapter
/// Created by David Schneider
/// http://blog.sharepoint.ch
/// Based on AKS
namespace AKSAdapters
{
public class AKS_WebPartZone_Adapter : System.Web.UI.Adapters.ControlAdapter
{
protected override void Render(HtmlTextWriter writer)
{
bool inEditMode = false;
System.Web.UI.WebControls.WebParts.WebPartZone wpz = Control as System.Web.UI.WebControls.WebParts.WebPartZone;
if (wpz != null && wpz.Attributes["tableless"] != null)
{
SPWebPartManager swpm = (SPWebPartManager)SPWebPartManager.GetCurrentWebPartManager(wpz.Page);
inEditMode = !swpm.GetDisplayMode().AllowPageDesign;
}
if (inEditMode)
{
// Render the WebPartZone
writer.Indent++;
writer.AddAttribute(HtmlTextWriterAttribute.Id, wpz.ID);
if (!String.IsNullOrEmpty(wpz.CssClass))
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, wpz.CssClass);
}
if (wpz.LayoutOrientation == System.Web.UI.WebControls.Orientation.Horizontal)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "AspNet-WebPartZone-Horizontal");
}
else if (wpz.LayoutOrientation == System.Web.UI.WebControls.Orientation.Vertical)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "AspNet-WebPartZone-Vertical");
}
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.Indent++;
// Render the web parts
if (wpz.WebParts.Count > 0)
{
WebPartCollection wpColl = new WebPartCollection(wpz.WebParts);
foreach (System.Web.UI.WebControls.WebParts.WebPart wp in wpColl)
{
writer.WriteLine();
writer.AddAttribute(HtmlTextWriterAttribute.Class, "AspNet-WebPart");
writer.RenderBeginTag(HtmlTextWriterTag.Div);
wp.RenderControl(writer);
writer.RenderEndTag(); // Div
writer.Indent++;
}
}
writer.RenderEndTag(); // Div
writer.Indent--;
writer.WriteLine();
}
else
{
// If we are editing the page --> render the web part as usual.
base.Render(writer);
}
}
}
}
and to isolate it to the content editor web part, you can bind a control adapter to just that webpart
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter
controlType="Microsoft.SharePoint.WebPartPages.ContentEditorWebPart"
adapterType="ProjectName.SharePoint.Adapters.ContentEditorWebPartAdapter" />
</controlAdapters>
</browser>
</browsers>
And override the render but I'm not sure that the wrapping table mentioned is generated at the render process.
Kindly