Thanks @Marek, your suggestion got worked out.

check DeviceEditor control (sitecore\shell\Applications\Layouts\DeviceEditor\DeviceEditor.xml)

change CodeBeside to your custom class inheriting from the original Sitecore.
Shell.Applications.Layouts.DeviceEditor.DeviceEditorForm
overwrite OnLoad method to hide PlaceholdersTab from the DeviceEditor.xml.

Here is the custom logic to restrict the access to specific role:


    public class DeviceEditorForm : Sitecore.Shell.Applications.Layouts.DeviceEditor.DeviceEditorForm
	{
		protected override void OnLoad(EventArgs e)
		{
            Assert.ArgumentNotNull(e, "e");
			base.OnLoad(e);
			if (!Context.ClientPage.IsEvent && Sitecore.Context.User.IsInRole(ContentAuthor))
            {
				Layout.Visible = false;
				Placeholders.Visible = false;
			}
		}
	}