If I wanted to add and remove values in a max heap I would first add the value to the end of the heap and then percolate it upwards as necessary. Then I would delete the value by saving the root node and then taking the value at the end of a max heap, move it to the top, and then percolate it downward as necessary, and finally return the value saved from the front.
This involves a lot of comparisons and swapping of values. Is there an algorithm that has similar a complexity class but more efficient for first adding and then removing values in a max heap?
Adding to a binary heap takes log(N) comparisons. Removing an item, assuming you know where the item is, takes log(N) comparisons. The inefficient part about deleting from a heap is finding the item you want to remove. That takes O(N) time.
By the way, you can improve deletion performance by taking the last item in the heap, placing it at the position of the item you want to remove, and then percolate up or down as required. See any algorithms text for an example.
If you want a more efficient data structure, you need something other than a binary heap.